Commit Graph

9551 Commits

Author SHA1 Message Date
David Capello
3ea0437e1d Add "recent" param to SaveFile/ExportSpriteSheet to avoid adding the file to the list of recent files 2024-05-10 15:20:32 -03:00
David Capello
0cc1161d64 Disable progress bar in commands that can receive ui=false (fix #4165) 2024-05-09 14:34:48 -03:00
David Capello
a1bd6f59aa Update cmark module 2024-05-08 14:52:39 -03:00
David Capello
6f09bde511 Allow backslash (\) in filenames on Linux and macOS (fix #3936)
We required a new app.os object to skip some tests on non-Windows
platforms when we check for backslashes in app.fs functions.
2024-05-08 14:46:16 -03:00
David Capello
30a4000c7c Disable tinyxml2 tests 2024-05-08 09:59:21 -03:00
Gaspar Capello
805a8259a1 Fix wrong alignment between mouse and sensor threshold position (fix #4428) 2024-05-06 10:52:21 -03:00
David Capello
92edd5f700 Add Brush::clone() functions to fix/simplify some Brush-related code
This refactor includes:

- In Lua now we can clone a custom brush with Brush(Image) and the new
  brush doesn't share the image with the original one (added a new test
  for this).

- Avoid creating extra images when it's not needed using
  Brush::cloneWithExistingImages() (we can inject existing images in
  the brush itself).

- Delete Brush-copy contructor & assign operator to use
  Brush::clone() functions instead (which are more explicit).

- Some code from 12d8135264 (#4023)
  reverted to avoid recreating brushes on left-click or in the brush
  preview, i.e. moving the mouse (#4013 refers only to right-click, so
  only on right-click we have to adjust the custom brush).
2024-05-03 11:35:36 -03:00
Gaspar Capello
12d8135264 Fix secondary color with custom brush paints the FgColor instead the BgColor (fix #4013)
Before this fix to change the main color of the image brush,
it was necessary to choose a new color from the palette.
The secondary color can now also be used.

Also added some tests for image brushes.
2024-04-29 17:20:56 -03:00
David Capello
2942abae3e Fix get-ninja action 2024-04-26 18:15:52 -03:00
David Capello
648ff61d1a Update laf module 2024-04-22 18:46:59 -03:00
David Capello
e48e71ba28 Update to tinyxml2 2024-04-22 18:28:03 -03:00
David Capello
4d18200b0c [lua] Fix bugs handling errors inside app.transaction()
This errors was reported in #4431: The Tx wasn't rolled back correctly
in case of a Lua error inside the transaction because Lua needs to be
compiled as C++ to avoid longjmps and support stack
unwinding (i.e. calling destructors).
2024-04-22 11:13:10 -03:00
David Capello
d1ea2eaff1 Avoid warnings about redefining LUA_USE_WINDOWS 2024-04-21 22:43:24 -03:00
David Capello
0b55dcdb3a [lua] Close stdin handle when we start running the GUI 2024-04-21 22:37:51 -03:00
David Capello
cd211ba0fd [lua] Ask permissions for io.lines/input/output functions 2024-04-21 14:31:17 -03:00
David Capello
7172de5007 [lua] Use internal variables to store ptrs to original unsecure functions
Instead of using Lua upvalues/closures.
2024-04-21 13:25:56 -03:00
David Capello
53bb6aceec [lua] Disable loadfile() without args in GUI mode
Waiting for stdin input will hang the program.
2024-04-21 13:14:09 -03:00
David Capello
f64e8065e7 Update laf module 2024-04-15 11:49:44 -03:00
Gaspar Capello
99e6e7bd82 Fix nested tag with "Ping-Pong" repeat mode causes to skip the first frame of the parent tag (fix #4271) 2024-04-12 10:41:18 -03:00
David Capello
d886e20f6c [lua] Secure io.popen() access (and enable popen on Linux) 2024-04-10 12:01:29 -03:00
David Capello
6a12c7014d Select "English" if the current language is not found in Preferences
If the user preferences file (aseprite.ini) contained a non-existent
language, the first option of the languages combo box was selected,
which might lead to a confusing situation where just opening the
preferences dialog will change from English to other
language (non-English, the first language in the combobox).
2024-04-08 13:23:38 -03:00
David Capello
4d5bf53be8 Fix crash accessing empty list of sprites updating ContextBar fields (fix #4407)
Not sure if this will be the final solution for this crash, as a Doc
shouldn't have an empty list of sprites.
2024-04-08 10:44:44 -03:00
David Capello
fd2a98c0e6 [win] Fix title bar flickering selecting menus/dialogs 2024-04-07 11:39:16 -03:00
David Capello
86ae7024d2 Update laf 2024-04-05 22:48:02 -03:00
David Capello
e21859c4af Migrate clip module from aseprite to laf 2024-03-26 13:31:22 -03:00
David Capello
ec4e82bdc0 Fix crashes with SpriteJob(s) that weren't locking the doc correctly (fix #4315)
This was mainly found in SpriteSizeJob crash reports. In these reports
deleted image buffers were still used to paint the Editor canvas
because the doc was write-locked in the main thread (same thread where
the canvas is painted). This produced a re-entrant lock in the
Editor::onPaint() as we can still read-lock from the same thread where
we write-locked the doc.

With this change we write-lock the doc from the SpriteJob background
thread (not the main thread) only if it's necessary (i.e. when the doc
is not already locked in the main thread, e.g. when running a script).
This makes that the main thread (Editor::onPaint) cannot read the doc
until we finish the whole SpriteJob transaction/Tx.
2024-03-25 18:53:12 -03:00
David Capello
427ee6f5b5 Use target_sources() instead of variables to list app-lib sources
target_sources() was added on cmake 3.1, long time ago, although we
started with the 2.6 versions, so now we can modernize the cmake file
a little.
2024-03-19 16:04:50 -03:00
Charles Bradley
571a3965e9 Fix copy+move cursor icon bug (fix #3887)
Add logic to show the correct curson icon when holding the
  copy key (alt) while hovering over a selected layer.
2024-03-15 11:47:04 -03:00
David Capello
8709219d68 Update laf (fix #4368) 2024-03-15 11:26:27 -03:00
David Capello
e129fefb2e Hide "Play subtags" option in File > Export if there are no tags (fix #4308) 2024-03-12 15:54:05 -03:00
David Capello
30f55d196b Show "Apply pixel ratio" option in File > Export only when needed (#4308)
If the sprite doesn't have a custom pixel aspect ratio configured
there is no need to show this option.
2024-03-12 15:14:45 -03:00
David Capello
a0e469624a Use make_shader() helper function to create ColorSelector shaders 2024-03-11 17:48:11 -03:00
David Capello
7905acf38a Handle some extra CannotWriteDocException cases when ContextWriter is used (#4367)
One fix that this patch includes for #4367 (crash by unhandled
CannotWriteDocException exception) is when we drag-and-drop a tag
border to resize its limits. This is a fix for that case but we don't
know if this include all cases of #4367 crashes (so we cannot close
the issue).

Anyway we have added some try { } catch in cases where it's better to
avoid propagating the exception, e.g. in
MovingSelectionState::onLeaveState() to avoid throwing exceptions in
Editor::backToPreviousState() which might be problematic in several
cases. (Maybe related to #2829?)
2024-03-11 17:15:13 -03:00
David Capello
7f659d2f86 Handle exceptions that DocDestroyer can throw (probably #4367) 2024-03-11 11:06:57 -03:00
David Capello
b8514ad1c6 Add helper functions make_shader(), make_skimage/skcanvas_for_docimage()
These functions can be used to create a new Skia shader from SkSL
code, and a new SkImage/SkCanvas to modify a doc::Image*
2024-03-11 10:34:05 -03:00
David Capello
50d4f9d802 Don't try to clone strings repo if Git isn't available (fix #4357)
This can happen when the source code is downloaded as a .zip and the
Git command is not available to clone the strings repo.
2024-03-06 09:59:20 -03:00
David Capello
4584d67b69 Update modules 2024-03-05 19:39:50 -03:00
David Capello
9c611cfaf9 Update laf 2024-03-04 14:57:19 -03:00
David Capello
73fe8099d9 [win] Add 20x20 and 28x28 versions of Aseprite icon (fix #3034)
This is to fix the appearance of the icon when Windows is configured
with 125% DPI or 175% DPI. In the past we've done something similar
for 150% DPI (713a2eac80) with a 24x24
icon.
2024-02-29 23:20:44 -03:00
David Capello
cfb663f820 Some fixes to readability-else-after-return 2024-02-29 10:26:47 -03:00
David Capello
667335be62 Update laf 2024-02-28 21:10:57 -03:00
David Capello
32bdb3a695 Minor rename of header guard
In this way we avoid problems with clang-tidy and defined identifiers
that starts with __
2024-02-28 21:10:07 -03:00
David Capello
4ea0390623 Add [[nodiscard]] to Tx as we have to create an instance of Tx when we use it 2024-02-28 21:09:23 -03:00
David Capello
83d83cd8c6 Add const to lock_guards 2024-02-28 12:32:08 -03:00
David Capello
d37bfa6c43 Fix compilation of tests when LAF_BACKEND=none 2024-02-28 10:45:52 -03:00
David Capello
166124526f Update laf 2024-02-28 10:16:53 -03:00
David Capello
32a1b327a6 Fix typo 2024-02-28 10:16:36 -03:00
David Capello
edc248d418 Removing some unnecessary #includes 2024-02-28 10:16:11 -03:00
David Capello
1a067bb223 Update json11 module 2024-02-28 08:30:23 -03:00
David Capello
b5288d85e7 Update some clang tidy checks 2024-02-27 23:20:12 -03:00