Commit Graph

6690 Commits

Author SHA1 Message Date
David Capello
534163ae5f Fix painting issues in the debugger filling the line number column correctly 2021-10-25 17:40:12 -03:00
Martín Capello
c5fccb1499 Add a check to allow exit command execution only when the main window is the currently running 2021-10-20 11:35:54 -03:00
Gaspar Capello
f15589734f Fix double-clicking a .aseprite file in macOS Finder doesn't open the file anymore (fix #2985)
More info in: #3006
2021-10-20 11:05:24 -03:00
David Capello
ea703a38e6 [lua] Add "fgcolorchange" and "bgcolorchange" events to app 2021-10-19 15:18:13 -03:00
David Capello
4dcdcfe387 Fix deadlock destroying SpriteEvents disconnecting observers onCloseDocument
Instead of using an onDestroy(Document), which can be called from the
ClosedDocs background thread, we can disconnect all Doc observers on a
new onCloseDocument() event called from Doc::close() (from the UI
thread).

This deadlock issue was commented here:
https://github.com/aseprite/aseprite/pull/3009#issue-1029413592
2021-10-19 13:01:37 -03:00
David Capello
246b1930f4 Revert "Avoid deadlock of ClosedDocs and SpriteObserver"
This reverts commit 8c902dd8fc.
2021-10-19 11:56:36 -03:00
David Capello
5d04eb5a2e [lua] Match WebSocketMessageType constants with the style of all other constants 2021-10-19 11:15:00 -03:00
David Capello
5c30315611 Avoid std::bad_function_call if we don't specify an onreceive callback for the WebSocket 2021-10-19 11:12:15 -03:00
David Capello
c2f24656d7 Don't create a ui::Timer if the UI is not available 2021-10-19 11:11:57 -03:00
David Capello
651fa4a3b6 Stop the auxiliar ui::Timer when the last WebSocket is GC'd 2021-10-19 10:57:25 -03:00
David Capello
b29627c8cb Minor formatting change 2021-10-19 10:50:18 -03:00
lampysprites
6075285b5c Refactor the websocket timer 2021-10-19 12:23:12 +07:00
lampysprites
8c902dd8fc Avoid deadlock of ClosedDocs and SpriteObserver 2021-10-18 23:43:50 +07:00
lampysprites
1f9c2e8987 Handle socket messages when window is out of focus 2021-10-18 23:40:49 +07:00
lampysprites
93fb40ad7d Expose min/max time between websocket reconnects 2021-10-18 23:38:45 +07:00
Martín Capello
d1e02cc3c1 Add listitem support to the ui class generation tool 2021-10-15 10:44:30 -03:00
Martín Capello
e9e515c03f Add slider's "readonly" attribute support to widget_loader 2021-10-14 15:28:07 -03:00
David Capello
6dd128d637 Add main_area in debugger window to show only the buttons initially 2021-10-13 10:35:55 -03:00
David Capello
212e9fbe6c New initial Lua debugger version (#1967)
Incomplete version of the Lua debugger.
Some available features:

* Break in next executed instruction
* Step in, over, out
* See & navigate stacktrace
* See local variables

Some missing features:

* Breakpoints
* Eval user expressions with local variables

The UX needs some improvement yet.
2021-10-12 16:52:14 -03:00
David Capello
3de3ef5635 Minor change in widget_loader.cpp 2021-10-12 15:32:02 -03:00
David Capello
0b1ae09a63 Avoid exception using <textbox /> on .xml widget files
The exception was thrown using std::string(nullptr) constructor.
2021-10-12 15:30:16 -03:00
David Capello
9dbbcbd7ef Fix Theme::drawTextBox() to calculate the correct textbox size
If we are only calculating the textbox size (Graphics* g=nullptr) we
don't need to use the View scroll information anyway.
2021-10-12 15:28:57 -03:00
David Capello
161264a78d Merge branch 'script-api-layer-is-reference' 2021-10-08 11:47:54 -03:00
David Capello
318d5ed6a0 Avoid removing random values from the Lua registry using Events:off()
Fix proposed in:
https://github.com/aseprite/aseprite/pull/2980#issuecomment-938495522
2021-10-08 11:09:47 -03:00
David Capello
2ddbbf00d6 Fix FileAccessMode::Full security value to include OpenSocket
Commented in:
https://github.com/aseprite/aseprite/pull/2980#issuecomment-938495522
2021-10-08 11:05:16 -03:00
David Capello
b9130b83f4 Merge branch 'interprocessing' 2021-10-07 19:38:23 -03:00
David Capello
6e84bb5443 [lua] Ask for permission to open a WebSocket from scripts 2021-10-07 19:37:10 -03:00
David Capello
b9241e6d91 Refactor ask_access() with ResourceType argument 2021-10-07 19:34:40 -03:00
David Capello
4cd137a639 [lua] Add Image.rowStride property now that Image.bytes is available
We need to know the specific rowStride to be able to set a proper
Image.bytes (bytes size = Image.height * Image.rowStride).
2021-10-07 19:10:27 -03:00
David Capello
cd342f5630 [lua] Add events handling with Sprite.events & App.events
Added a new Events object with :on() and :off() methods to start or
stop listening to a specific event respectively. This also allows to
add several callbacks for the same event.

Replaced the temporal Site.onChange & Sprite.onChange implementations.

Related to several issues (enable more possibilities for): #138, #1403, #1949, #2965, #2980
2021-10-07 18:56:39 -03:00
David Capello
0249275f8c [lua] Change MessageType to WebSocketMessageType
Just in case to avoid collision or confusion with some kind of future
MessageType (e.g. ui::MessageType). There are no plans for this, but
we prefer to use WebSocket* prefix.
2021-10-06 19:33:09 -03:00
David Capello
327b38a05d Wrap MESSAGE_TYPE_BINARY with parenthesis (...) 2021-10-06 19:29:19 -03:00
David Capello
0ca411690b Remove trailing whitespaces 2021-10-06 19:17:10 -03:00
David Capello
c117b1b01f Simplify Image_set_bytes(): as bytes_size == bytes_needed we don't need to call std::min() 2021-10-06 19:16:51 -03:00
Jeremy Behreandt
e0a747cad7 Expose Layer Is Reference
Exposes a getter for layer is reference in the Lua scripting API.
2021-10-06 14:04:54 -05:00
David Capello
f8dabfa294 Use portable memcpy instead of memcpy_s 2021-10-04 18:07:20 -03:00
lampysprites
2628afdfce Remove unneeded Sprite.__gc 2021-10-04 23:15:55 +07:00
lampysprites
bf53fa26cd Make onChange callbacks more predictable 2021-10-04 12:17:25 +07:00
lampysprites
a90853f765 Extend WebSocket API 2021-10-03 12:52:37 +07:00
lampysprites
4354be1d7a Add CMake option to disable websockets 2021-10-03 12:40:29 +07:00
lampysprites
711741a358 Remove unneeded lua stack pops 2021-10-03 02:22:15 +07:00
lampysprites
28595a410d Clean up sprite observers on lua GC 2021-10-02 22:10:25 +07:00
lampysprites
83c03a3158 Expose site observer to lua API 2021-10-02 20:09:35 +07:00
lampysprites
2aa3fdbd95 Execute websocket callbacks in the ui thread 2021-10-02 18:34:17 +07:00
lampysprites
22e3e6244a Simplify user API for Sprite observers 2021-10-02 16:22:31 +07:00
lampysprites
f8ef06a86e Lua API Image:bytes - convert lua Image to data string and back 2021-10-02 14:40:28 +07:00
lampysprites
b0f10ee276 Add Websocket client API 2021-10-02 13:57:51 +07:00
David Capello
33595c8bbb Merge branch 'plugin-onenabled' 2021-09-30 15:02:14 -03:00
David Capello
b5d230d52f Increment Lua API version 2021-09-30 15:01:57 -03:00
David Capello
1e92f66ff2 Remove trailing whitespace 2021-09-30 14:22:21 -03:00
David Capello
89904afa82 Simplify app::Job implementation
* Remove pointers to base::thread/mutex
* Use std::thread/mutex as values
2021-09-30 14:09:39 -03:00
lampysprites
e6aeee6400 Add IXWEbSocket library 2021-09-30 13:13:43 +07:00
David Capello
d7ddb7feed Fix changing random values to transparent color for non-indexed sprite from cmd::SetPalette
Possible fix for #2970
Possible regression introduced in dd2d226264
2021-09-29 14:42:55 -03:00
lampysprites
85f3164e21 Expose DocObserver to the scripts 2021-09-29 22:39:01 +07:00
lampysprites
449c158f80 Implement enabledness check for script commands 2021-09-28 14:44:38 +07:00
David Capello
364f62ee4a Merge branch 'sentry' (fix #2857) 2021-09-23 21:09:27 -03:00
David Capello
f07dc53d83 Use our anonymous UUID to identify Sentry users 2021-09-23 21:06:19 -03:00
David Capello
c6c1393402 Show consent to share crash data only when there are something to share 2021-09-23 20:40:02 -03:00
David Capello
f6322a1373 Don't show "Aseprite is up to date" when there is no new version 2021-09-23 15:27:09 -03:00
David Capello
0c604ca4ba Ask for consent to share crash data 2021-09-23 15:22:26 -03:00
David Capello
6cafec8d06 Move Sentry class impl to a .cpp file 2021-09-23 12:55:30 -03:00
David Capello
515952cf32 Enable Fill/Stroke commands when !ENABLE_UI 2021-09-23 09:18:14 -03:00
David Capello
024cd73f62 Change location for crash data (e.g. %AppData%/Aseprite/crashdb) 2021-09-22 19:48:44 -03:00
David Capello
8b215235c7 Minor fix for app-lib flags in CMakeLists.txt file 2021-09-22 18:34:23 -03:00
Gaspar Capello
83c18399a4 Fix incorrect cropping rectangle calculation in canvas size command in lua script
Prior to this fix, CanvasSize command via lua script results in bad canvas and image clipping.
2021-09-22 17:40:29 -03:00
David Capello
911589111e Add Sentry as an alternative to handling minidumps manually (#2857) 2021-09-21 11:29:48 -03:00
David Capello
7d248c33d7 Fix initialization order of base class and member variable in ui::CloseEvent class
Fixed clang warning: field 'm_canceled' will be initialized after base 'ui::Event'
2021-09-06 18:00:56 -03:00
Martín Capello
495623d6b2 Add support to "visible" attribute 2021-09-06 13:58:19 -03:00
Martín Capello
05dfd75743 Add cancelation support to CloseEvent 2021-09-06 13:57:57 -03:00
Martín Capello
e6d0c1858a Add <image> tag support 2021-09-06 13:53:02 -03:00
Joshua Ogunyinka
3da532453c Fixed issue regarding when color index of a pixel is bigger than the palette size 2021-09-02 16:56:39 +04:00
David Capello
013792a215 Don't access preferences from background thread and check current_editor existence
Related to #2874 and ac31ee35c0
2021-09-01 12:11:02 -03:00
David Capello
6341fcee23 Add missing #include to use current_editor 2021-09-01 12:02:29 -03:00
Robert Rüdiger
ac31ee35c0 Fix translucent backgrounds in color selection 2021-09-01 12:01:59 -03:00
David Capello
845f275ae7 Enable cycling colors when palette size=1 so RGB/HSV colors are converted to index=0 anyway
In this way after ChangeColor command to increase/decrease an index is
used, we always got an index selected (even index=0 if palette size=1)
2021-09-01 10:38:35 -03:00
Jeremy Behreandt
edb9f89456 Cyclic Color Change in Palettes
Made Change Color: Increment/Decrement Foreground/Background methods cyclic instead of clamped. At last palette element, incrementing selected color returns to first element. At first palette element, decrementing color returns to last element.
2021-08-31 01:10:18 -05:00
Gaspar Capello
dd2d226264 Fix crash after saving a GIF file from an indexed image which transparent index is gone
Before this fix, it was possible to lose the transparent index at Indexed Color Mode.
It was reproducible doing:
- New file, Indexed mode, Black background.
- Erase all the palette, add 40 colors slots (these all will be black)
- Press Remap button
- Go to Sprite > Properties...  set transparent color to 11.
- Erase color entries 2 to 20
- Press Remap button
You'll see the transparent index is gone (transparent index = -1)
To reproduce the crash, additional steps are needed:
- Right click to layer and select 'Layer from Background'
- Make a color RGBA(0, 0, 0, 0) and add to the palette
- Paint on canvas with this color (it'll act like a eraser)
- File > Save As... save in GIF format.
- Press OK
Crash!

This crash was reported on ticket 2620 and 2621.
2021-08-30 15:53:33 -03:00
Jeremy Behreandt
d14cf4038d Color Sort For Hue, Alpha
Removes switch case with fall through. Removes nested switch
cases. Refactors color sorting method to 1. push zero alpha colors to
the front of the palette; 2. resort to value as a criterion for gray
colors; 3. use saturation and value as back up comparisons for each
other for equivalent values; 4. approximate gamma-to-linear when
perceptual lightness is chosen.

Partial fix for #2901.
2021-08-30 15:33:53 -03:00
Joshua Ogunyinka
971ba32338 added support for loading/saving alpha channels in palette files 2021-08-30 10:57:20 -03:00
David Capello
1f6c6951af Add SetGridBounds::setGrid() to avoid some duplicated code 2021-08-30 10:52:40 -03:00
Joshua Ogunyinka
f85f24e847 fixed restoring grid preference on undo/redo (fix #2872) 2021-08-28 08:54:00 +04:00
Joshua Ogunyinka
33d0187dab Continue playing the same tag in the Preview window after switching sprites (fix #2797) 2021-08-26 08:54:29 -03:00
David Capello
d3d30ed851 Merge branch 'improve-save-performance-fseek' 2021-08-23 12:33:20 -03:00
jestarray
59e01493cb Added Duration to filename formatter 2021-08-23 11:50:28 -03:00
David Capello
4981f05f0b Fix color of the central little pixel of the crosshair 2021-08-20 20:11:51 -03:00
David Capello
2fa47b59c9 Center the "open sequence" dialog correctly when it's showed from a file specified in the CLI (fix #2899) 2021-08-18 15:36:15 -03:00
David Capello
1e98a65859 Minor change in ui::Manager::run() 2021-08-18 15:34:05 -03:00
David Capello
341408e902 Don't crash when saving palettes to .jpg format (fix #2654)
Now .jpg is not even show in the list of available format to save
palettes (same for other file format that don't support indexed color
mode).
2021-08-18 13:03:38 -03:00
Martín Capello
1eb740482e Update last row and column of pixels in the editor's viewport when the sprite is zoomed in and the color mode or FX dialog are used. (also fix #2803) 2021-08-13 11:11:55 -03:00
Robert Rüdiger
32999a71bc Fix color switching on empty palette space click 2021-08-08 12:46:55 +02:00
Alex Marcolina
54fddf7cc3 Replace fseek with putl/w to reduce io flushes
ase_file_write_start_chunk needs to skip forward the size of the chunk header, as these values will be written in later.  Using fseek was causing performance issues on my Windows machine due to causing an io flush on every chunk, for projects with many (thousands) of chunks.  Replacing with the equivalent put commands in ase_file_write_close_chunk results in ~100x speedup.
2021-08-01 20:44:15 -07:00
Martín Capello
fc79146c56 Fix crash when pressing ESC while moving a selection (fix #2829) 2021-07-16 11:24:49 -03:00
David Capello
5a6bd465f5 Cache mouse cursors to avoid re-generating them on each setCursor()
This should improve the mouse movement, where a new mouse cursor was
created on each mouse movement with black & white pixels. It's a
regression introduced in ef4f691459
(which was originally introduced to improve the mouse movement
perception in a 100Hz monitor).

This might be a possible fix for:
https://github.com/aseprite/aseprite/issues/2713
2021-07-09 10:21:16 -03:00
David Capello
8f838ba36d Backport FullscreenMode command (#464)
Original from ae02600a63
2021-07-05 20:11:46 -03:00
David Capello
8c0215dd06 Fix UI tests 2021-07-05 19:42:32 -03:00
David Capello
95df0b23d3 Show main os::Window on the first flipDisplay() 2021-07-05 19:42:04 -03:00
David Capello
4a5a3a7bc4 Fix compilation when ENABLE_DEVMODE is defined 2021-07-05 19:41:51 -03:00
David Capello
c42c5e1453 Backport new laf API to main branch of aseprite
Some features from the beta branch of aseprite & laf were backported
to the main branch of aseprite.

Related commits:
- New memory handling (db4504e816)
- New get event with timeout (e6ec13cc31)
- Convert os::NativeCursor to an enum (06a5b4f3ae)
- Adapt code to the new os::Display -> os::Window refactor (5d31314cdb)
- Save/load main window layout correctly and limit to current workarea (d6acb9e20f)
- Redraw window immediately on "live resizing" (d0b39ebade)
2021-07-05 17:51:29 -03:00
David Capello
ffe65bface Detect webp files by file content (fix #2807) 2021-07-01 11:37:11 -03:00
David Capello
f99b5218b9 Remove unused code from ReplaceColor command
The original intention was to save selected colors in the Replace
Color dialog so then showing up it again would restore those saved
color. But it never worked in that way and just by mistake it was
using the Foreground/Background pair of colors by default (which is
the desidered behavior now). So we are just removing the buggy code
that never worked. (Related to #2028 in some way.)
2021-06-29 16:31:51 -03:00
David Capello
e73d96262d Always use Foreground color in Select > Color Range (fix #2028) 2021-06-29 16:26:48 -03:00
David Capello
78abaf0292 Minor change in MaskColor add ConfigSection constant 2021-06-29 16:23:56 -03:00
David Capello
9609d2c827 Fix crash if we press F5/reload menus when we have a menu open (fix #2496) 2021-06-28 21:13:56 -03:00
David Capello
ee7a1a1ed6 Add CompanyName field to Win32 resources file (fix #2801) 2021-06-28 12:04:56 -03:00
David Capello
6157b004e4 Fix possible memory leak setting invalid preference when loading a BoolPrefWidget from an XML file
Reported in #2782
2021-06-23 08:54:26 -03:00
David Capello
89f8e6f275 Fix possible/low chance to happen memory leak
Reported in PR #2782
2021-06-23 08:41:06 -03:00
David Capello
11e4243d05 Add ${main_target} to reference "aseprite" target 2021-06-16 17:22:31 -03:00
David Capello
74170c14fa Add ${DATA_OUTPUT_DIR} to src/CMakeLists.txt 2021-06-16 17:21:34 -03:00
David Capello
5d97aed5e9 Use new laf flags to detect platform in main and App 2021-06-16 17:21:02 -03:00
David Capello
61952bc45f Fix compilation of src/app/file_system.cpp in non-Windows platforms 2021-06-16 09:46:00 -03:00
David Capello
92c5222aa7 Use base::ComPtr in the FileSystemModule 2021-06-15 18:23:49 -03:00
David Capello
5f00e6f96a Fix possible crashes on UI menu bar/box logic (fix #2771)
We weren't able to reproduce the crash, but these checks will prevent
the crash itself. (So in the future if we receive a related report, it
will be because something is not working correctly in the menus, but
not a crash report.)
2021-06-15 15:14:17 -03:00
David Capello
37d2b62250 Convert MenuBaseData pointer to std::unique_ptr 2021-06-15 14:35:48 -03:00
Gaspar Capello
1eace24891 Improve aspect of ellipses for 16x16 or bigger sizes (fix #2217)
Now algo_ellipse() function supports additional parameters to create
rounded squares in the future.
2021-06-11 14:47:23 -03:00
David Capello
65fabf3a68 Update README/LICENSE files in src/desktop 2021-06-11 12:18:45 -03:00
David Capello
55db5ac6f2 [win] Fill the whole available space for the File Explorer thumbnail 2021-06-08 16:44:58 -03:00
David Capello
7d809bd537 Remove unused var 2021-06-07 16:14:40 -03:00
David Capello
364b121fb3 Fix some memory leaks reported by g++ 11 memory sanitizer 2021-06-07 14:19:54 -03:00
David Capello
1889e1b4a5 Don't ignore alert dialogs for fatal incompatibilities when saving
E.g. if we are going to save an indexed file as .jpg, it's a fatal
error, so we have to show the alert dialog (even when the user chose
to ignore this kind of messages warnings).
2021-06-07 13:00:01 -03:00
David Capello
f6ba8d9ae0 Allow to drag mouse outside color wheel to select colors at the circumference 2021-05-31 15:00:21 -03:00
David Capello
779bf09893 Fix color wheel radius (fix #2737) 2021-05-31 14:50:01 -03:00
David Capello
613cd38daa Set the theme of ColorButton popups correctly if they are created 2021-05-23 12:32:32 -03:00
David Capello
f4ed3ae321 Don't change user-defined pos of Splitter when we resize the window 2021-05-20 20:42:01 -03:00
David Capello
141bc434bf Fix bug undoing a Remap operation when several colors are removed from the palette 2021-05-20 19:43:18 -03:00
Gaspar Capello
b1203216be Fix crash when remap on palettes with more than 256 colors 2021-05-11 18:57:55 -03:00
Enfyve
2394cbe4b2 Fix external folder manipulation (fix #232)
Updates folder upon navigation (up, back, forward, in).

Also introduces a new button to refresh the current folder view when pressed or when hotkey pressed (F5 or ctrl+R)
2021-04-25 19:04:06 -04:00
David Capello
d7a1c71df0 lua: Add support for selection tools in app.useTool()
Fix https://github.com/aseprite/api/issues/37
2021-04-22 13:51:56 -03:00
David Capello
33db4281e7 Don't activate square aspect when we start a Rectangular Marquee w/Shift modifier
Regression introduced in 21e893162d to fix #2537
2021-04-16 13:58:12 -03:00
David Capello
ca41785f18 Fix regression: 'Simple Crosshair' mouse cursor dissapears when we switch to Eraser tool
Regression introduced in: ef4f691459
2021-04-16 12:09:49 -03:00
David Capello
4fe8c93c5c Fix regression cannot move/resize reference layers
Regression introduced in f3ab779bfd
2021-04-16 10:23:35 -03:00
David Capello
cdf271af74 Avoid leaks running "gen" when memory sanitizer is enabled 2021-04-15 10:43:17 -03:00
David Capello
a035f64d8d Simplify About dialog 2021-04-13 19:08:33 -03:00
David Capello
5b3600e261 Cache user.aseprite-brushes path 2021-04-13 16:38:56 -03:00
David Capello
70e2abaf69 Fix some issues detected with the ThreadSanitizer 2021-04-13 15:35:34 -03:00
David Capello
8b4746e813 Add option to disable the "open sequence of files" dialog 2021-04-12 16:57:02 -03:00
David Capello
5e98b39944 Expand timeline range outline for layers/frames to all cels 2021-04-12 14:48:16 -03:00
David Capello
1b0466af17 Fix some bugs drawing the timeline when we scroll it
Mainly the range outline outside the frames header.
2021-04-12 14:47:59 -03:00
David Capello
8d6f889e0e Add option to keep the timeline selection when we draw on the canvas 2021-04-12 14:47:47 -03:00
David Capello
2df3cd8a80 [lua] Add app.command.ImportSpriteSheet()
Feature request: https://community.aseprite.org/t/8482
2021-04-09 17:28:59 -03:00
David Capello
3769d91125 [lua] Add Sprite.pixelRatio property
Feature request: https://community.aseprite.org/t/8627
2021-04-09 16:22:50 -03:00
David Capello
5053443d21 Load indexed tga w/transparent pal entries as transparent layer
Before this we were loading the file with a Background layer with a
transparent palette entry.
2021-04-09 12:09:45 -03:00
David Capello
cff3475941 Don't show warning when saving indexed tga w/transparent pal entries 2021-04-09 12:09:09 -03:00
David Capello
f311e3edde Fix selection feedback in indexed when mask color w/alpha=0 (fix #1412, fix #1667)
Also reported recently here (and probably in several other places):
https://community.aseprite.org/t/8462
2021-04-09 11:11:41 -03:00
David Capello
64f96f0851 [linux] Use $XDG_CONFIG_HOME if defined instead of $HOME/.config (fix #2332) 2021-04-08 15:56:32 -03:00
David Capello
f1b02a3347 Deselect timeline range in "auto select layer" mode if we just click the active layer
Fix: https://community.aseprite.org/t/8610
2021-04-08 15:21:11 -03:00
David Capello
f91c07825b Don't use Timeline range if it's hidden in editor site & moving cel 2021-04-08 15:17:39 -03:00
David Capello
f3ab779bfd Don't transform hidden layers (fix #2680) 2021-04-08 11:24:55 -03:00
David Capello
565057cf77 Add missing file in 67eeac8045 2021-04-07 18:51:48 -03:00
David Capello
9c319e46ac Fix bug transforming the same linked cel two times
As we wanted the current cel as the first cel to transform (to avoid
re-transforming it with inner cmds when we drop pixels), if this cel
was a linked from other one it will not be removed from the
getEditableCels() list, so two linked cels would appear two times in
the list. Now we remove the current cel correctly when it's a linked
cel after re-adding it.

Reported here: https://community.aseprite.org/t/8618
2021-04-07 18:32:56 -03:00
David Capello
67eeac8045 Fix bug keeping the modified range different than the visible range when moving pixels
When we clicked the current cel/frame/layer on MovingPixelsState in
the Timeline, we weren't dropping the pixels, so the range was
different in the Timeline UI, but we were using the old site range
which was different (bigger) than the Timeline range.

Fixes several bugs: https://community.aseprite.org/t/8618
2021-04-07 18:11:30 -03:00
David Capello
169cfa39cf Use timeline selection only when it's visible 2021-04-07 15:20:36 -03:00
David Capello
a122f1ceba Reset tool preferences just once when running from CLI 2021-04-07 12:58:03 -03:00
David Capello
351900b4e7 Update flic and tga modules 2021-04-07 11:24:39 -03:00
David Capello
a5c36d0b0f Add possibility to cancel the DrawingState with Undo/Redo/Cancel commands
To match the new MovingCelState behavior.
2021-03-26 12:05:28 -03:00
David Capello
768b69113a Disconnect from BeforeCommandExecution signal onBeforePopState to avoid double backToPreviousState() calls
In some special cases (several key press enqueued?) we can receive a
BeforeCommandExecution signal when we are not part of the Editor state
stack anymore.

Related to 5ba8cecdde
2021-03-26 11:40:10 -03:00
David Capello
5ba8cecdde Fix a crash pressing (and keeping pressed) Ctrl+Z (Command+Z)
This tries to avoid calling onBeforeCommandExecution() after we are
going to the previous state. This might be a problem on all states
that are using a scoped_connection to disconnect from the app::Context
signal in the destructor (instead of in the
onBeforePopState). Something to fix next for all other states.
2021-03-26 10:45:46 -03:00
Gaspar Capello
42201a4783 Fix bug while moving an image in MovingCelState
Original post: https://community.aseprite.org/t/pretty-nasty-bug-specific/8290

Before this fix, if you pressed Cmd Z / Ctrl Z (undo) while moving an image holding Cmd/Ctrl key,
the moved image were gettting stuck on cursor, and console errors were shown on every click.
2021-03-26 10:01:11 -03:00
David Capello
a9640a28dc Fix several bugs handling the clipboard on X11 2021-03-22 11:27:59 -03:00
David Capello
6b89075b26 Don't send paint messages when we are closing the app 2021-03-09 16:43:22 -03:00
Gaspar Capello
1193bf18fc Fix lua error crash (fix #2635)
Prevents crashes from uncaught exceptions generated from Lua errors
when running aseprite from the console with -script param.
2021-03-09 16:40:24 -03:00
David Capello
2dccb6d646 Add GitHub actions 2021-03-08 11:38:04 -03:00
David Capello
35bb3af6e2 Replace all base::Bind() with lambda functions 2021-03-05 20:09:42 -03:00
David Capello
ddbbf12bfc Update main branch 2021-03-05 18:39:36 -03:00
David Capello
ef4f691459 Generate a native cursor for the crosshair on the sprite
In this way we can get pixel from the window surface and put pixels in
the new cursor surface which will represent the crosshair on the
mouse/screen position. In this way we avoid an effect of a slow mouse
response on high refresh rates.

Maybe related to: https://community.aseprite.org/t/3354
2021-02-25 16:56:33 -03:00
David Capello
a24f271e3a Remove unused vars from BrushPreview 2021-02-25 14:44:07 -03:00
David Capello
74ee4dced4 Fix DEBUG_PAINT_EVENTS on Windows 2021-02-25 13:14:39 -03:00
Gaspar Capello
3035a5713d Fix crash deleting a group layer at the top level
The crash could be achieved by having just one group layer at the top
level (with some children) and trying to delete it using Layer >
Delete Layer menu option (without using the timeline range).

Report: https://igarastudio.zendesk.com/agent/tickets/1719
2021-01-15 17:02:10 -03:00
David Capello
32106512dc Update about/status bar copyright info 2021-01-15 14:46:45 -03:00
David Capello
b1b201a22c Minor change in ui::Widget to check current manager 2021-01-15 13:16:40 -03:00
Gaspar Capello
980454eac0 Fix brush symmetry
Prior to this fix, asymmetric brushes weren't reflected, instead the brush was simply moved to a mirrored position.
2021-01-15 12:15:16 -03:00
David Capello
2be11cf2f5 Fix ASSERT deleting a backup session on start when there is no UI
This can happen if the session folder cannto be deleted e.g. when the
folder is not empty (for example if we've copied/created a file in the
session folder manually).
2021-01-15 11:43:07 -03:00
David Capello
ee07df6a26 CSS output without vars by default 2021-01-05 15:02:12 -03:00
David Capello
b1016a419f Minor formatting changes 2021-01-05 14:43:43 -03:00
David Capello
e813773445 Merge branch 'feature-css-export' into css-export 2021-01-05 12:23:57 -03:00
David Capello
d4072fac94 Merge branch 'save-palette-as-preset' 2021-01-05 11:48:57 -03:00
David Capello
d3f3858859 Minor change "save_as_preset" -> "saveAsPreset"
This new camelCase style is prefered since the introduction of the Lua
scripting API.
2021-01-05 11:41:26 -03:00
David Capello
de22d69678 Add FinishLoading signal to ResourcesListBox to detect when the resources were loaded
In this way we avoid using ui::ListBox::Change signal as a
workaround (which is a signal that should be fired only from
ui::ListBox::onChange()).
2021-01-05 11:03:29 -03:00
mezz
3211831da3
Create and use new signal: PalettePresetsChange 2021-01-04 09:53:20 -10:00
David Capello
4b1e4c67c5 Merge branch 'fix-2564' 2021-01-04 15:55:50 -03:00
David Capello
23559a9b44 Don't generate new slice keyframes when duplicating the sprite (duplicate only the slice keyframes)
Related to #2568
2021-01-04 15:52:56 -03:00
Gaspar Capello
a7419c7813 Fix pen pressure size + symmetry
This fix improves the symmetry drawing when symmetry and the pen pressure size are on.
2020-12-30 16:35:36 -03:00
mezz
be48c40dc5
Reload palette popup and refresh search results when saving a new preset 2020-12-29 20:45:37 -10:00
mezz
98a0bcb2d7
Add palette option to save as preset
This works the same as saving a palette normally, but opens the file dialogue to the default palette preset directory.
2020-12-29 19:56:02 -10:00
David Capello
21e893162d Add possibility to hold tool modifiers when we start drawing on kMouseDownMessage (fix #2537)
E.g. In this way we can press the Shift modifier, then press the mouse
button to start drawing successive straight lines with the angle
snapped (so there is no need to release/press the Shift modifier again
and again).
2020-12-14 14:49:16 -03:00
David Capello
81d9e8afec Fix bug with Console when the UI Screen Scaling is changed 2020-12-11 15:52:14 -03:00
David Capello
c0ac9208ff Fix layer name for new sprites to match the translation in new layer (fix #2549) 2020-11-27 19:27:13 -03:00
David Capello
85e51abcaa Minor changes about old "layer set" -> "layer group" 2020-11-27 19:26:18 -03:00
sumibi-yakitori
25ca9e4a13 Add duplicate slices 2020-11-23 16:41:14 +09:00
David Capello
ca013ff5d8 [lua] Check that some arguments are really strings in make/removeDir 2020-10-22 12:17:49 -03:00
David Capello
14893fbaf8 [lua] Add functions to make/remove directories with app.fs 2020-10-22 11:36:52 -03:00
David Capello
661f4897b2 Check that we're in the UI thread when modifying the widgets collection 2020-10-20 12:54:56 -03:00
David Capello
38d1b8a8e2 Fix Flip command labels when assigning shortcuts (fix #2545) 2020-10-17 09:36:36 -03:00
David Capello
6c4621a26a Fix copy & paste of images from GM2 2020-10-13 10:49:26 -03:00
David Capello
f44aad06db [lua] Fix Dialog:file{ save=true } so 'save' field must be =true
Before this change if we used Dialog:file{ save=false } it would show
the save version of the dialog, which didn't make sense.
2020-08-18 08:55:04 -03:00
David Capello
95ce7541e7 Avoid redrawing transformation on each mouse position change (related to #2149) 2020-08-17 17:35:34 -03:00
David Capello
b355f34a70 Export all groups (even collapsed ones) by default in JSON metadata (fix #2484) 2020-08-17 17:14:12 -03:00
David Capello
f3e9978bb0 [win] Fix pasting 32-bpp images from Firefox
And any app that use DIBV5 format with BI_RGB compression.
2020-08-13 11:02:01 -03:00
David Capello
955d0a9c41 [win] Minor change to call CoInitialize()/CoUninitialize() 2020-08-12 11:16:31 -03:00
David Capello
6987a15986 Update submodules 2020-08-12 11:16:16 -03:00
David Capello
282b040b52 [win] Fix copy & paste 32bpp images w/alpha channel from/to some Windows programs
More information:
https://steamcommunity.com/app/431730/discussions/0/1846946102842809327/
2020-08-11 19:30:39 -03:00