Atari only support 8.3 file names and adding a tmp suffix for atomic
writes breaks this.
Make the WriteMode_WriteAtomic flag available in all cases and fall back
on unatomic write in this case.
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.
Commit b4c96355c9b51b54c4deb52e7d7cdfc7bf79bc2f from
https://github.com/ocornut/imgui/tree/docking
This adds global shortcuts and better table handling.
Update process:
1. In ScummVM backends/imgui directory:
for i in `find .`;do cp -v ../../../../imgui/$i $i;done
patch <scummvm.patch
2. Compile, test with launching engines using ImGui
3. Regenerate patch, in imgui directory:
diff -rbu . ../scummvm/scummvm/backends/imgui/|grep -v ^Only >../scummvm/scummvm/backends/imgui/scummvm.patch
4. Commit
- 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.
Fixes OneDrive sync by handling list of unexisting "saves" subdirectory.
Previously, code that worked with JSON didn't trigger, because string was intentionally malformed. If it wasn't, OneDriveTokenRefresher::finishError() would've treated it as JSON parse failure, tried to fix it, and call finishJson() instead of finishError().
This reverts commit 99dc7641a9.
This causes bug #15392, a build failure on Dreamcast and changes too
much the semantics.
A better approach will need to be found, especially for streaming files
like logs.
A temporary file is used to write the data and the file is renamed when
it is closed.
The string containing the destination path is a stored as a pointer to
limit the size of the object (which is already doubled).