When a hardware keybaord is present, Android may display the IME
dependng on a (secure) user setting.
Even if this setting is not documented, as it's here since 2014, it
seems quite safe to use.
In addition, long pressing the input method icon will forcibly display
the soft keyboard even if a HW keyboard is present.
More guards were added to hopefully link the mouse down and up events that should be executed in sequence, albeit delayed
Also a new case was added for a delayed mouse up event (in JE_MULTI) to avoid it being executed out of order / too soon.
Remove an accidental semicolon after a function definition which
was ignored by the compiler but generated a warning.
Rename a variable inside a code block that was generating a warning
about shadowing a local variable.
This implementation creates a temporary file (suffixed with .tmp) and
renames it to the expected file name when the file is closed.
If the renaming fails, the destination file is removed and renaming is
tried again to handle cases where renaming over an existing file is not
supported by the underlying OS.
When creating an atomic write stream, the file is only created once it
is closed.
This can be done using a temporary file.
This commit only adds the API but not the proper implementation.
Some crash reports from AppStore was reported due to system abort
while trying to read the current touch mode on system startup.
When the ViewController loads it tries to read the touch mode to
know which icon to show. The scummvm system runs in a different
thread and might not have finished loading at the time.
This causes an uneccessary race condition and it's a bit hard to
abort the application in this scenario. It should be just fine to
return the default "Direct touch" mouse mode when this happens.
The button images can become cropped if placed too close to the
corners on modern iPhones and iPads. This due to the squircle form
of the screen corners. iPhones have safe area insets that can be
used to calculate a margin. On iPads the safe area inset values
are 0, but still the button images can be cropped due to the round
form of the screen corners. Use a constant value of 10 in those
cases.
This looks good on devices with big screens (iPads) and smaller
screens (iPhone 12 mini).
Put the menu button below the touch mode button to remove the empty
gap while in the launcher. By putting the buttons along the right
side they interfere less with the game interface. This is how the
Android port place the buttons. Align the iOS port accordingly.
The burger menu button doesn't fill any purpose while in the launcher.
Nothing happens when the user press the button in the launcher. This
is considered as bad user experience according to Apple guidelines.
The button must be hidden while in the launcher.
Show the menu button only while an engine is running.
- Mouse left click and long click gestures are shared between
the Pencil and regular Touch inputs.
- Mouse right click and long click have Pencil specific gestures.
Touchscreen is present on Linux phones and can be present on generic Linux.
Allow to configure it in touchpad mode. Think of Raspberry pi connected to
a touchscreen