Some project files (iPhone) and backend files (Symbian) still reference m4.dat,
but I know not enough on how to remove that without breaking something.
The header contains forbidden symbols on some platforms, and the
simplest solution seems to be to include it here. This also includes
it from all the portdefs.h files, except the Symbian one. Probably
the FIXME and the #if can be removed once it's known to work.
This is because the top GUI keymap is for the keymapper dialog itself.
If all GUI keymaps are skipped then when inside a game with the GMM displayed
and the keymapper dialog invoked, the game keymap is displayed even though it
is not the active one.
This fixes a problem where opening the keymapper dialog would cause the current game
keymap to be displayed as the active keymap but then changing the keymap selection
back to it would cause the GUI keymap to be displayed as the active one. The GUI keymap
was indeed at the top of the stack but that's not the desired effect.
Also move the pushing and popping of the keymap to Dialog::Open/Close
Also constantify the GUI keymap name
If we leave it for OSystem, the DefaultTimerManager destructor tries
constructing a StackLock which, predictably, calls a pure virtual
function, because OSystem_Android's destructor is finished.
N800 doesn't have a CTRL key to activate the virtual keyboard with.
Fullscreen can still be enabled/disabled through the GUI and was the most
likely sacrifice as a hardware key.
This reimplement getSystemLanguage() for MacOS X because
setlocale() only works if the application is started from the terminal.
Instead we use CFBundleCopyPreferredLocalizationsFromArray() which
requires the translations to be listed in the bundle plist file (this had
already been committed). This fixes bug #3394080.
* Note: This really should be cleaned up and all backends that have a custom loadGFXMode() really should setup their own _videoMode.hardware* settings. Assuming the overlay will always match the hardware is flawed logic on devices with fixed hardware screens.
* Just done for the GPH backend for now to cut down on the regresion risk to other backends near the 1.4.0 release cycle.
The improvements in this commit are mostly code formatting, variable
abstraction, and in one case, a performance enhancement as calculations
were made a one-time fire rather than being run with every mouse move
event.