This might be a fix for two frequently reported crashes from Sentry:
1) In Manager::_closeWindow() (#3491): We can reproduce this bug (without
this patch) pressing Ctrl+S to save the active sprite and clicking
randomly in the menu bar (File, Edit, etc. options) to open other menu
boxes (a crash can happen when multiple windows UI is enabled).
2) In set_native_cursor_on_all_displays() (#2907): We weren't able to
reproduce this bug.
In this way we can export each grid cell/tile as an individual sprite,
and use the extrude option on each grid cell. We've added the
--split-grid CLI option too.
Now we can export one (or several) tilesets in one sprite sheet (using
the same options that are available in the Export Sprite Sheet dialog,
e.g. like extruding tiles, related to #1982 in some way).
Some changes:
* New "Source" field and fromTilesets param for ExportSpriteSheet
command
* New ExportTileset command (which acts like ExportSpriteSheet but
with fromTilesets=true by default)
* Added --export-tileset CLI option
Before this fix, when the Sprite Size dialog was opened using the
Ctrl+Alt+I key combination, then closed, the brush size changed as the
cursor moved (without even pressing Ctrl+Alt modifiers), keeping the
DraggingValueState alive.
These actions weren't working correctly because we have to take
special care when we change the tool group, i.e. the "initial
position" used to calculate the delta from "mouse pos - initial pos"
must be updated to reset the delta to change tools inside the same
tool (this is the new m_initialPosSameGroup member variable).
This is a patch, but we don't know why this can happen, so it's highly
probable that other kind of crashes might appear in the near
future (or this doesn't fix the original bug).
Regression in dd0c29620974e56d9e62653804b996740a89e88a (Use
tooltip_text style & color to paint tooltip windows #2554).
Prior this fix, text box does not update its bounds area because it
has not a style assigned.
Fix#3442, fix#3443
It looks like processing a specific kPaintMessage with
ui::Widget::sendMessage() might re-create the os::Surface and destroy
the previous one, so we need to keep a reference to the previous
surface just in case to keep it alive.
We aren't able to reproduce this crash, but we've received several
Sentry reports about it, only on Windows and since v1.2.34.1 (not sure
if it's related to that). We'll see if this does fix the crashes or we
have some kind of regression in the future.