The tray position was not correctly computed and it was most of the
time trying to display it way outside the window (it was using X
instead of Y in one place for the vertical position).
This was a recent regression from a6bc1d587 (GUI: Fixed grid view
for long games list).
We used Common::Rect which uses in16 for its members. Lomger lists
exceeded 32,768 in heights, thus, leading to negative numbers. As a result,
scrollbar was not showing up.
We now correctly recognize obsolete language codes.
(e. g. "jp" will be considered the same as "ja")
Another step to bring down the number of detected targets...
The dialog
"WARNING: Existing save has longer gameplay duration than the current state. Are you sure you want to overwrite it?"
is not really helpful and seems to have more negative than positive impact on the user experience, so I have removed it.
GUI: Improve behavior of console history
Do not persist empty strings, prevent scolling upwards to _historyIndex entry when full, and save to history file in proper order
Currently, the text-to-speech manager will try to update the voices whenever TextToSpeechManager::pushState()/popState() is called. This causes lags of 4 - 5 seconds on Windows. Also, a warning is triggered each time. This commit prevents that from happening if the tts option is not enabled.
This commit currently affects only Windows. Other backends don't make use of the new _enabled setting. I don't know if it would make sense for any of these and I also wouldn't be able to test it.
When starting to scroll, the current line is added to the history
so that if we scroll up and then down we get it back. This was
initially implemented correctly, but borken later on in 51dceaf165
when the history was changed to use Common::String.
This should address the #13106 issue and similar
It makes widgets, who don't implement handleMouseWheel(), call the handleMouseWheel() of their parent by default
Logic is borrowed from how widgets forward unhandle commands to their parent in handleCommand()