This was originated for #1279 (CLI-only Aseprite) which can be
achieved with LAF_BACKEND=none anyway.
In this way we simplify the development process, and checking for the
availability of the GUI can be done in run-time through App::isGui()
or Context::isUIAvailable().
Some features from the beta branch of aseprite & laf were backported
to the main branch of aseprite.
Related commits:
- New memory handling (db4504e816ffccf0ea63a78737ebb6e22cc0453b)
- New get event with timeout (e6ec13cc31e6e689040bc651f98ee1752834d14c)
- Convert os::NativeCursor to an enum (06a5b4f3aebfafb6363ea33d349975d6e419ca7b)
- Adapt code to the new os::Display -> os::Window refactor (5d31314cdb23f314391e5eaebd7cea84f5179ac7)
- Save/load main window layout correctly and limit to current workarea (d6acb9e20f11fda938959c99285fe4f7d7051794)
- Redraw window immediately on "live resizing" (d0b39ebade7736d47e6b2450bf68b088c0da8e57)
* Now the restored frame position/maximized flag are saved correctly.
* We've improved the default size to the current workarea of the main
screen.
* Limit the initial frame position to the current available screens
(e.g. the saved frame position could be invalid if the user
unplugged a monitor)
We've refactored the code to support locating windows (and popups
windows + hot regions) correctly in both modes: with one ui::Display
and with multiple ui::Displays.
For this we've added a new ui::fit_bounds() function that works in
both modes.
Each ui::Window now can have a related native os::Window. This
connection is done through the ui::Display class added recently in
c3d52f0bbe5242923c9e38495e1be1135ca0934f.
This ui::Display is related to one native os::Window, so the dirty
region/invalid region is now part of a ui::Display instead of a
ui::Manager.
* Replaced ui::display_w/h() functions with ui::Display::size()
and ui::get_desktop_size()
* The ui::Manager contains the main ui::Display, and in the future an
ui::Window will have its own ui::Display
Now we can repeat the same action (Agree/Skip the all sequence of
images) for all the dropped files/selected files in the "Open File"
dialog (as in the CLI new behavior).
Main changes:
- Improve the "Keyboard Shortcuts" dialog because instead of changing
global shortcuts/menu keys and rollback everything if we select
"Cancel", here we make a copy of all shortcuts, modify them in the
dialog UI, and finally "commit" to the global shortcuts if the user
confirms the dialog.
- Fix "Reset" button in "Keyboard Shortcuts" dialog for mouse wheel
customization