Commit Graph

7269 Commits

Author SHA1 Message Date
David Capello
bc16ab3a71 Fix crash accessing a deleted display using parentDisplay() (fix #3491, fix #2907)
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.
2022-08-29 20:01:50 -03:00
David Capello
e87cb2dd8f Merge branch 'main' into beta 2022-08-23 15:24:02 -03:00
David Capello
8a7f6930d0 Fix minor memory leaks loading palettes using std::unique_ptrs 2022-08-23 15:08:01 -03:00
David Capello
ab4088502c Use FileAbstractImage in .fli and .webp file formats (#3008) 2022-08-23 11:33:03 -03:00
David Capello
2f34e25f06 Merge branch 'export' into beta 2022-08-19 18:05:36 -03:00
David Capello
38270fff5b Add --extrude CLI option (fix #2072) 2022-08-19 17:34:16 -03:00
David Capello
acb246e26b Add "Sprite Grid" source option to Export Sprite Sheet (fix #1982)
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.
2022-08-19 17:21:56 -03:00
David Capello
a2f61a3378 Add "File > Export > Export Tileset" option (#3240)
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
2022-08-18 14:56:43 -03:00
David Capello
d0701c61ca Merge branch 'main' into beta 2022-08-18 13:54:11 -03:00
David Capello
9f8df8e914 [win] Fix aseprite-thumbnailer with new changes from a66c170ded 2022-08-18 13:53:20 -03:00
David Capello
83857ea600 Merge branch 'main' into beta 2022-08-17 22:58:12 -03:00
David Capello
a66c170ded Add render::BgOptions to simplify some code 2022-08-17 22:40:25 -03:00
David Capello
4e12e427ef Rename "checked" -> "checkered" (background, drawing routines, etc.)
Also rename setBgCheckedSize -> setBgStripeSize in case we add new
background patterns (like horizontal/vertical/diagonal stripes, etc.)
2022-08-17 22:19:07 -03:00
David Capello
2367c8526b Replace deprecated macro TYPED_TEST_CASE with TYPED_TEST_SUITE 2022-08-17 21:46:33 -03:00
David Capello
bdee7d98fe Use std::unique_ptr for selected layers/frames in DocExporter::Item 2022-08-17 12:50:41 -03:00
David Capello
a13423bd70 Add the logic side to export the selection only (fix #645) 2022-08-12 20:11:25 -03:00
David Capello
3c3d2dafe6 Add Area element in the Export window (UI only) (#645) 2022-08-12 17:25:40 -03:00
Gaspar Capello
e6c90334f9 Fix scrollbar for the Extensions list in Preferences is missing on the first open (fix #3456) 2022-08-10 12:01:28 -03:00
David Capello
71b91cf6ed Merge branch 'main' into beta 2022-08-09 16:26:52 -03:00
David Capello
3a917492ee Fix crash showing color selector when GPU is enabled
It looks like the internal surface has a nullptr color space.
2022-08-09 16:11:57 -03:00
Gaspar Capello
19b18d2a63 Fix reference layer scaled incorrectly after Sprite > Sprite Size (fix #3461) 2022-08-09 15:30:20 -03:00
Gaspar Capello
7a8cd2683e Don't keep DraggingValueState after closing a command dialog (fix #3445)
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.
2022-08-08 18:00:48 -03:00
David Capello
09626b2c0c Fix possibility to dock/drop tabs to sides/tabs (fix #3453)
Bug reproducible only with multiple windows and generally small Screen
Scaling factor (100%).
2022-08-08 17:22:39 -03:00
Gaspar Capello
add1128248 Fix RotSprite transparency bug (fix #3444) 2022-08-08 10:37:32 -03:00
David Capello
da636253ee Fix scale factor when using the "Export for Twitter" (fix #3465)
Regression introduced in b7d5d4a2c9
2022-08-08 10:29:36 -03:00
Martín Capello
daa9b40a07 Fix eyedropper quick tool when preview window is visible (fix #3236)
Co-authored-by: David Capello <david@igara.com>
2022-08-08 09:56:37 -03:00
David Capello
854bb2e8f3 Fix WheelAction::ToolSameGroup/ToolOtherGroup in DraggingValueState (fix #3459)
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).
2022-08-08 09:44:04 -03:00
David Capello
c62aa571aa Possible fix rendering reference layers in nonreproducible scenario (fix #3460)
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).
2022-08-05 10:30:17 -03:00
Gaspar Capello
12e59b887f Add remember new tilemap layer base index (fix #2735) 2022-08-04 14:30:11 -03:00
David Capello
05bf34f084 Merge branch 'main' into beta 2022-08-02 16:48:32 -03:00
Gaspar Capello
55885ee266 Fix regression: TextBox isn't rendering text (doesn't update the bounds area of the text box)
Regression in dd0c296209 (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
2022-08-02 16:39:18 -03:00
David Capello
3e6360d024 Fix crash using deleted os::Surface (fix #3451)
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.
2022-08-02 16:22:13 -03:00
David Capello
db38a56558 Merge branch 'main' into beta 2022-07-20 16:10:40 -03:00
David Capello
52b1899e9d Fix crash Ctrl+clicking an ill-formed reference layer cel with width/height < 1.0
The width/height of a reference layer cel cannot be < 1.0, but in the
extreme case where this happens, Ctrl+clicking the reference layer
shouldn't crash the program.
2022-07-20 15:18:49 -03:00
David Capello
571134c1b4 Add option to apply Saturation/Value to Hue slider in Tint/Shade/Tone optionally
This was changed in df33744c85, but now
we're adding an option to switch between both behaviors. We prefer to
keep the old behavior as the default one and the new one as an
optional preference.

Related to: https://community.aseprite.org/t/15065
2022-07-20 12:47:50 -03:00
Martín Capello
22de483fc7 Remove "Enter license" menu item when DRM feature is not enabled 2022-07-19 15:43:31 -03:00
David Capello
3db8267270 Merge branch 'main' into beta 2022-07-19 10:35:13 -03:00
David Capello
da58670dd0 Revert "Add '{title}' and '{layer}' functionality to the Export dialog (fix aseprite/aseprite#3363)"
Fix crash reported on v1.2.36/v1.3-beta17, ctx->activeDocument() can
be nullptr.

This reverts commit 1f5e4cfc4f to fix #3431
2022-07-19 10:29:16 -03:00
David Capello
5ec88ad659 Merge branch 'main' into beta 2022-07-18 16:05:37 -03:00
David Capello
dd0c296209 Use tooltip_text style & color to paint tooltip windows (fix #2554) 2022-07-18 16:00:13 -03:00
David Capello
db1faf8f7b Merge branch 'main' into beta 2022-07-18 15:32:27 -03:00
David Capello
7c8153b5ec Use selection bounds if they're visible on ImportSpriteSheet by default 2022-07-18 12:47:54 -03:00
David Capello
df33744c85 Improve color selector shaders
* Removed conversion from RGB -> HSV/HSL for each pixel (we just pass
  the HSV/HSL values directly to the shader). In this way we don't
  lost some hue information for some special cases like white/black
  colors (probably related to: https://community.aseprite.org/t/14904)
* Now Tint/Shade/Tone selector changes the aspect of the Hue slider
  depending on the current saturation/value (this was changed in the
  non-shader version too)
2022-07-18 12:01:12 -03:00
David Capello
4389788a1d The document associated w/SpriteEvents can be nullptr in special cases
SpriteEvents can be re-created just when we're closing the sprite if
we access Sprite.events property in app 'sitechange' event. When this
second instance of SpriteEvents is deleted after the sprite was
closed, the document cannot be found (as it was already destroyed).

Associated test:
02a2f1f933
2022-07-16 13:14:24 -03:00
David Capello
f7dee88901 Fix uninitialized rgbmap (found w/MSVC debug, GitHub actions failed)
Regression from 2785a9fef7
2022-07-16 11:47:52 -03:00
David Capello
1912053f33 Merge branch 'main' into beta 2022-07-15 17:30:39 -03:00
David Capello
f4e83371b8 Several minor improvements to the status bar
* Remove "%3d" for integers (just use "%d"), this is a legacy format
  when the text was a monospace font (it was present from the very
  beginning of the times, when we used the Allegro font)
* New :delta: icon (before :offset: which didn't exist in the theme)
* Show useful info for MovingCelState: mainly cel bounds
2022-07-15 17:03:18 -03:00
David Capello
7e19592470 Preview the modified image for brush slots that don't save image colors
This is to show the brush image with the new fg color in the brush
popup instead of the original image when image colors shouldn't be
preserved for that specific slot.
2022-07-15 12:49:48 -03:00
David Capello
c6e3ca0d8b Fix memory leak with IntEntry popups 2022-07-15 12:46:54 -03:00
David Capello
60a4ebf8f6 Minor change in StatusBar::showColor() to use std::string/fmt::format 2022-07-15 12:30:15 -03:00