Without this fix we'll see the selection stroke feedback in the same
level as the active layer. With this patch the preview is displayed at
the top just as in the main branch.
In some special cases (several key press enqueued?) we can receive a
BeforeCommandExecution signal when we are not part of the Editor state
stack anymore.
Related to 5ba8cecddebb789bf2266a1600ea4c7f56fc34b7
This tries to avoid calling onBeforeCommandExecution() after we are
going to the previous state. This might be a problem on all states
that are using a scoped_connection to disconnect from the app::Context
signal in the destructor (instead of in the
onBeforePopState). Something to fix next for all other states.
Original post: https://community.aseprite.org/t/pretty-nasty-bug-specific/8290
Before this fix, if you pressed Cmd Z / Ctrl Z (undo) while moving an image holding Cmd/Ctrl key,
the moved image were gettting stuck on cursor, and console errors were shown on every click.
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.
In this way we can get pixel from the window surface and put pixels in
the new cursor surface which will represent the crosshair on the
mouse/screen position. In this way we avoid an effect of a slow mouse
response on high refresh rates.
Maybe related to: https://community.aseprite.org/t/3354
Now we have an easy way to convert between:
Background <-> Layers <-> Tilemaps
Deprecated (they are kept only for backward compatibility):
BackgroundFromLayer
LayerFromBackground
Before this fix working the next context:
- Active layer is a tilemap layer.
- TilemapMode == Pixels.
- TilesetMode == Manual.
- At least a border of the tilemap cel bounds is made of noTiles and tiles with index ’X’ (or a border is made all of tile ‘X’).
- With the marquee tool select a rectangle which matchs or exceeds the bounds of tile ‘X’.
Then when you delete the selected pixels (with the ‘delete’ key), automatically Trim command was executed, and the trimmed border is lost in the undo information.
Now, we skip the trim command in the context:
- Active layer is a tilemap layer.
- TilemapMode == Pixels.
- TilesetMode == Manual.