Added a new option (enabled by default) to set the mouse cursor when a
pen/pointer message is received. This fixes a couple of issues:
1) When we zoom in/out with keys or scrolling the trackpad, the last
known position will be used (the pen position if we are using the
pen).
2) If we are recording the stream/live streaming with a software like
OBS Studio, the cursor position will correctly be in the pen
position if we're painting with the pen.
We have to mark the SkBitmap as modified (new generation ID) in
convert_image_to_surface() so we upload the bitmap changes as a new
texture in the GPU.
On CPU we might try to blit the old content of the window in a new
location, but with a GPU this operation is super slow, it's fast just
to draw everything again.
* Moved flags that only app-lib uses from add_definitions() to
target_compile_definitions()
* Curl flags for TLS moved from third_party to root CMakeLists.txt (as
they were defined in both places)
The code was refactored moving the BlenderHelper class from "render"
to "doc", and now doc::blend_image() supports blending different color
modes.
Some work is still needed to work with grayscale images correctly.
This is the exact version that SerenityOS uses, it looks like it can
comment on Aseprite issues, while the original
one (unsplash/comment-on-pr) cannot, giving us the following error:
Couldn't find an open pull request for branch with head at .
Before this fix, the "cannot modify sprite/cannot lock sprite" message
was displayed instead of just dropping pixels.
Co-authored-by: David Capello <david@igara.com>
This commit addresses the issue where the Shift+brush tool was not disabling the mouse stabilizer, leading to unintended behavior when previewing a line. This commit adds the necessary implementation to properly disable the stabilizer when Shift+brush tool is used. Additionally, the function DrawingState::disableMouseStabilizer() now calls ToolLoopManager::disableMouseStabilizer() to ensure the stabilizer is disabled correctly.
With https://community.aseprite.org/t/layers-become-empty-when-autosaving/22141
we found a couple of bugs where only 2 backed up versions of stored
objects were added in ObjVersions::add().
Also as ObjVersions has a limited space for 3 versions, it's a good
idea to ignore invalid binary files (files without the magic number
"FINE" as header). So now we only add valid versions to ObjVersions,
previously we could lead to a situation where 3 invalid binary
versions of the same object were added to the ObjVersions and a 4th
valid version were ignored.
Related to: https://github.com/aseprite/aseprite/issues/4481
ENABLE_UPDATER flag now only controls the "check update" portion of
the updater-lib. Probably the user agent string could be moved to the
ver-lib in the future.
Only in debug mode with TEST_BACKUP_INTEGRITY flag, we now don't
detect as a layer diff between the doc in memory and the restore doc
from backup if only some layer flags like visibility/collapse changed.
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).
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.
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).