Commit Graph

9415 Commits

Author SHA1 Message Date
Martín Capello
04cf5eaa15 Introduce "alphaslider" and "opacityslider" controls. Use "opacityslider" in cel properties (fix #1544)
They work like a regular slider but use 0%-100% or 0-255 ranges depending on configuration settings.
2024-02-07 13:33:04 -03:00
Martín Capello
d331195c4c Add "Alpha & Opacity" section to Preferences > Color (fix #1544) 2024-01-12 14:38:04 -03:00
David Capello
9d69cb8dfe Possible fix for crash in Window::limitPosition() when parent is nullptr (fix #4261)
We cannot reproduce this but just adding a check here to avoid using a
nullptr parent pointer.
2024-01-08 15:07:36 -03:00
David Capello
00894101e0 Simplify Sentry::areThereCrashesToReport() using sentry_get_crashed_last_run()
Thanks for the Sentry team for the help in:
https://github.com/getsentry/sentry-native/issues/930
2024-01-08 14:08:25 -03:00
David Capello
78f5560b33 Update copyright year to 2024 2024-01-04 14:10:07 -03:00
David Capello
d6587fbf78 Add button to refresh/reload the list of palettes (fix #4258) 2024-01-04 13:51:18 -03:00
David Capello
88e89b6c38 Don't catch unhandled exceptions so Sentry can report them
If we catch all exceptions and { do nothing }, we are probably missing
some crashes from being reported.
2024-01-03 12:04:55 -03:00
David Capello
318a2c60ea Fix crash in BackupObserver::saveDocData() using destroyed docs when app is being closed due to an exception (fix #3818) 2024-01-03 12:04:14 -03:00
David Capello
ef23356b7f [i18n] Update credits README 2024-01-03 08:49:35 -03:00
Murilo Gama
c4a547ac78 [i18n] Translate Portuguese strings 2024-01-03 08:41:09 -03:00
puddiCria
78c7d0b4c5 [i18n] Translate Portuguese strings 2024-01-03 08:41:09 -03:00
Blezz Rot
cc105e0cbf [i18n] Translate Russian strings 2024-01-03 08:41:09 -03:00
David Capello
f5dd9424e1 [i18n] Translate Swedish strings 2024-01-03 08:41:08 -03:00
Samuel Pettersson
2c46082002 [i18n] Add Swedish translation 2024-01-03 08:41:08 -03:00
David Capello
025bcde91d [i18n] Translate Irish strings 2024-01-03 08:41:08 -03:00
doctor
063e73447b [i18n] Add Irish translation 2024-01-03 08:41:08 -03:00
David Capello
3b9e1db433 [i18n] Translate Spanish strings 2024-01-03 08:41:08 -03:00
Héctor Cortés
e72d724779
[i18n] Translate Spanish strings 2024-01-03 12:33:17 +01:00
David Capello
112063a14a Improve Cyrillic chars in Aseprite font (fix #4212)
It includes other minor changes:

- Added trailing column for separation to , ; ? » chars
- Removed heading column from ˲ char
2024-01-02 17:32:41 -03:00
David Capello
d8ed4d3995 Fix crash if an exception happens in DelayedMouseMove::commitMouseMove()
Without this an exception in DelayedMouseMove::commitMouseMove() could
produce (e.g.) the crash in #3818. This same error handling was
already done for Editor::onProcessMessage() in
DocView::onProcessMessage() to avoid crashing due unhandled exceptions
in Editor message processing.
2023-12-29 17:22:10 -03:00
David Capello
f178941f2c Fix crash copying, pasting, and transforming selection (fix #4249)
Regression introduced with 8722c8ec16
and d3562b140c.

Our re-entrant RWLock implementation is tricky because it doesn't
support to unlock in different order than it was locked.

E.g. If we create a DocWriter (e.g. paste command), and try to create
a DocReader (e.g. PixelsMovement) inside the DocWriter scope, the
reader will return a LockResult::Reentrant, but if we unlock the
write, then the reader cannot be used to upgradeToWrite() because the
lock will have just 0 locks (the re-entrant one didn't modify the
count of the RWLock). This is because it was thought that the
DocReader was going to be unlocked before the writer lock (in the
exact inverse order).

Basically these re-entrant RWLocks will not work fine if we mix up the
order of locks/unlocks in the same thread.
2023-12-29 17:22:10 -03:00
David Capello
d93655647d [i18n] Update credits README 2023-12-29 10:33:31 -03:00
Murilo Gama
6cfff7cfa3 [i18n] Translate Portuguese strings 2023-12-29 09:58:44 -03:00
Grey
5d544e4b24 [i18n] Translate French strings 2023-12-29 09:58:44 -03:00
Cerno_b
77af16682d [i18n] Translate German strings 2023-12-29 09:58:44 -03:00
Ruslan
f65f0ab925 [i18n] Translate Russian strings 2023-12-29 09:58:44 -03:00
KESTREL (Kestrel)
396dafaa8e [i18n] Translate Korean strings 2023-12-29 09:58:44 -03:00
David Capello
677672c663 [i18n] Copy tolerance/opacity strings to general section 2023-12-29 09:58:44 -03:00
Héctor Cortés
46f32d6fba [i18n] Translate Spanish strings 2023-12-29 09:58:44 -03:00
David Capello
de0e2220af [i18n] Translate Spanish strings 2023-12-29 09:58:44 -03:00
PxSprite
db19020ab9 [i18n] Translate Polish strings 2023-12-29 09:58:44 -03:00
Eryk Michalak
a9044886d2 [i18n] Translate Polish strings 2023-12-29 09:58:44 -03:00
Héctor Cortés
64b1d1a3aa [i18n] Translate Chinese (Traditional) strings 2023-12-29 09:58:44 -03:00
TakWolf
70f7bcbc56 [i18n] Translate Chinese (Simplified) strings 2023-12-29 09:58:44 -03:00
鲸流
31800f93de [i18n] Translate Chinese (Simplified) strings 2023-12-29 09:58:43 -03:00
TakWolf
6b72e5c261 [i18n] Translate Chinese (Simplified) strings 2023-12-29 09:58:43 -03:00
Gaspar Capello
ba9ede873c Fix Alt+T -> Alt+V instantly crashes Aseprite without warning (fix #4221) 2023-12-27 16:58:37 -03:00
Martín Capello
3f00b3e593 Avoid div by zero by preventing returning a grid bounds with zero width or height (fix #4146) 2023-12-27 15:19:22 -03:00
David Capello
d3562b140c A Tx now will always try to lock the document if possible (#2430)
With re-entrant RWLocks we can try to lock the document on each
transaction/command/modification. This fixes several problems running
scripts that weren't locking the sprite in an app.transaction() call.
2023-12-27 11:05:15 -03:00
David Capello
8722c8ec16 Lock document in Tx() ctor (part of #2430)
This already fixes a lot of possible problems that can happen when a
script is running and modifying some part of a sprite that is being
backed up in a background thread.

We still need some work to being able to lock a sprite two or more
times in the same thread to write it. E.g. an app.transaction() should
lock the sprite for write access, but the script transaction function
could call a command, and that command could use a ContextWriter to
lock the sprite again. At the moment this is not possible because we
need a re-entrant RWLock implementation.
2023-12-27 11:05:15 -03:00
David Capello
e87fdbb3af [i18n] Add some hardcoded strings to en.ini (fix #4237) 2023-12-22 15:03:07 -03:00
David Capello
e2d8db92d2 [i18n] Add support to escape more chars, like \s (fix #4236) 2023-12-22 11:37:04 -03:00
David Capello
bbb6913d82 [i18n] Consistent use of double quotation marks (fix #4233) 2023-12-21 13:16:05 -03:00
David Capello
8475b5a47b [i18n] Add license terms to Arabic translation 2023-12-19 14:34:59 -03:00
David Capello
4e18263d48 [i18n] Update README 2023-12-19 14:34:28 -03:00
PxSprite
a406844891 [i18n] Translate Polish strings 2023-12-19 14:20:13 -03:00
KESTREL (Kestrel)
f5acc7e9f5 [i18n] Translate Korean strings 2023-12-19 14:16:44 -03:00
Mr.k
62ede8a5f0 [i18n] Add Arabic translation 2023-12-19 14:14:38 -03:00
Grey
a27b09efe9 [i18n] Translate French strings 2023-12-19 14:11:53 -03:00
David Capello
0bc9676965 [i18n] Make consistent use of periods in tooltips (fix #4215) 2023-12-19 13:59:06 -03:00