Commit Graph

199 Commits

Author SHA1 Message Date
David Capello cb6ccc3dc5 Fix the displayed mouse cursor when the selection is active
Regression introduced in 8c916bf211
2021-06-11 11:46:56 -03:00
David Capello 649f187fc9 Possible fix for a crash transforming tilemaps in certain cases
Crash report: https://igarastudio.zendesk.com/agent/tickets/2300
2021-06-01 10:43:03 -03:00
David Capello bcd69495ce Fix several issues locating windows with multiple UI windows
We've refactored the code to support locating windows (and popups
windows + hot regions) correctly in both modes: with one ui::Display
and with multiple ui::Displays.

For this we've added a new ui::fit_bounds() function that works in
both modes.
2021-03-19 18:57:56 -03:00
David Capello 8034b0cbcc Add support for multiple native windows (#139, #250, #962, etc.)
Each ui::Window now can have a related native os::Window. This
connection is done through the ui::Display class added recently in
c3d52f0bbe.
2021-03-02 13:50:49 -03:00
David Capello c3d52f0bbe Add ui::Display to support multiple windows in the future
This ui::Display is related to one native os::Window, so the dirty
region/invalid region is now part of a ui::Display instead of a
ui::Manager.

* Replaced ui::display_w/h() functions with ui::Display::size()
  and ui::get_desktop_size()
* The ui::Manager contains the main ui::Display, and in the future an
  ui::Window will have its own ui::Display
2021-02-18 12:34:42 -03:00
David Capello 120fb4dca4 Add support to copy/cut/paste/transform tilemaps 2020-10-02 19:03:53 -03:00
David Capello 44f65ad305 Minor change: use more "auto" before dynamic_cast() 2020-09-25 09:48:56 -03:00
David Capello 8c916bf211 Minor fix to the angle used on each handle for mouse cursors 2020-09-22 17:12:22 -03:00
David Capello 3fbdd40f24 Add skew transformation (fix #71)
This is the first version of the feature, it still needs some
fixes (e.g. avoid skew transform when the pivot is in the same side of
the skew handle which can calculate a division by zero).
2020-09-18 19:29:43 -03:00
David Capello 291ebc6a38 Minor refactor from ui::MouseMessage -> tools::Pointer 2020-08-31 23:17:15 -03:00
David Capello 5ee3ebdd71 Add fg/bg tiles selectors in ColorBar
Now fg/bg colors and fg/bg tiles are different widgets, and the
StatusBar can show tiles when the eyedropper is picking tiles.
2020-08-21 18:28:31 -03:00
David Capello 0bae04f40b Merge branch 'beta' into tilemap-editor 2020-07-21 17:12:09 -03:00
David Capello ce06b55894 Receive a ui::Graphics in TransformHandles::drawHandles()
Instead of using a ScreenGraphics.
2020-07-21 16:43:36 -03:00
David Capello 515dace441 Merge branch 'beta' into tilemap-editor 2020-07-13 17:32:42 -03:00
David Capello 8a3f32b47f Replace all base::Bind() with lambda functions 2020-07-03 21:51:46 -03:00
David Capello bd1723313a Merge branch 'master' into tilemap-editor 2020-06-12 11:33:55 -03:00
Gaspar Capello 9c37ea41ed Fix locked layer not completely locked (fix #2181) 2020-06-09 18:03:09 -03:00
David Capello a80af2b304 Merge branch 'master' into tilemap-editor 2020-05-18 20:24:22 -03:00
David Capello 3d2013b33c Draw mask boundaries with a gfx::Path
The path is also cached so on each re-paint we can re-use it while
it's still valid.
2020-05-18 17:58:22 -03:00
David Capello 46f4002368 Fix crashes saving sprites with '%' char in their filename
To fix this we changed the way StatusBar text is handled (we are using
fmt::format() in StatusBar instead of printf-like ... args now).
2020-05-08 17:39:55 -03:00
David Capello c99a566635 Refactor velocity sensor with tools::VelocitySensor class 2020-04-24 11:19:35 -03:00
David Capello 79f9e28ce8 Added pen pressure sensitivity (fix #710)
- Added support to detect eraser tip on Linux (#610)
- Related to #139
- Still needs works for gradients and better brush interpolations
  between stroke points
- Requested several times, e.g. https://community.aseprite.org/t/1077
  https://community.aseprite.org/t/1881, steam forum, etc.
2020-04-21 22:27:49 -03:00
David Capello b491e589fd Remove unused variable 2020-04-08 17:29:47 -03:00
David Capello dfaf01ced4 Show tile value in the status bar 2020-02-17 09:06:01 -03:00
David Capello 9073b4aec6 Show correct active tile on status bar when we are in a tilemap 2020-02-17 09:06:01 -03:00
David Capello 9fe05a5dd5 Fix crash double-clicking a moving selection (fix regression in 7b07f29f0b)
Here we avoid two ExpandCelCanvas at the same time with
MovingPixelsState + DrawingState. Double-clicking inside the selection
when we are moving it (MovingPixelsState) could start a new
DrawingState which creates a new ToolLoopImpl that needs a new
ExpandCelCanvas. So we have to drop the pixels before.
2020-02-17 08:28:30 -03:00
David Capello 7b07f29f0b Add possibility to select multiple tiles with double-click + dragging mouse (fix #1988)
Fixes: https://community.aseprite.org/t/1929
Related to #939
2020-02-16 12:42:29 -03:00
David Capello 30b2585037 Save grid bounds inside .aseprite files and doc::Sprite (fix #688) 2019-10-10 15:08:59 -03:00
David Capello 79795b97a9 Fix hang if we press Cmd-S two or more times quickly to launch File > Save
With this we avoid to unintentional execute two or more times a
command when we are already in a command execution.
2019-06-03 23:02:24 -03:00
David Capello b0163f3937 Don't crash with div by zero when grid bounds has an invalid value 2019-05-27 23:53:57 -03:00
David Capello 0c6e8de9e5 Double-click opens the slice properties dialog w/Slice tool 2019-05-07 10:33:05 -03:00
David Capello e8716cbb6e Improve context bar for slice tool (combobox of slices + action buttons) 2019-05-07 10:28:37 -03:00
David Capello 73de6c8b1d Add ability to edit multiple slices
Related to #721 and #1651, still need more work to give a better UX to
edit static and animated slices.
2019-05-02 16:26:13 -03:00
David Capello c7955337c2 Disable Shift+click to draw straight lines when we are in SelectBoxState 2019-04-29 15:50:34 -03:00
Gaspar Capello f53544842c Fix non-normal blend modes when the backdrop is transparent (fix #1096) 2019-03-09 12:40:31 -03:00
David Capello d8b95c30e8 Add option to disable double-click to select a grid tile (fix #1901) 2018-11-15 19:17:19 -03:00
Gaspar Capello b3771472c3 Add default info on status bar (fix #1874) 2018-11-14 18:04:26 -03:00
David Capello 3a77321597 Add "intersect" selection mode
Discussions:
https://community.aseprite.org/t/intersectional-selection/801
https://community.aseprite.org/t/feature-request-intersect-with-selection-tool/1797
2018-10-26 14:04:08 -03:00
Gaspar Capello 7b4609d2d1 Fix move symmetry when zoom tool is active (fix #1845) 2018-08-30 18:13:03 -03:00
David Capello 5cb2d984f0 Rename she -> os 2018-08-09 12:58:43 -03:00
David Capello f2ed45e795 Replace base::UniquePtr -> std::unique_ptr 2018-08-08 17:27:26 -03:00
David Capello b3c89cd110 Rename DocumentView -> DocView 2018-07-14 23:24:49 -03:00
David Capello 8d3da46ac9 Rename DocumentReader/Writer -> DocReader/Writer 2018-07-14 22:49:22 -03:00
David Capello a360c4fcc4 Merge branch 'master' 2018-07-07 12:20:25 -03:00
David Capello 9c79ea2b77 Rename app::Document -> Doc 2018-07-07 11:54:44 -03:00
David Capello d00fc99138 Rename DocumentRange -> DocRange 2018-07-07 10:07:21 -03:00
Gaspar Capello a69a120e14 Flip command changes to moving pixels state (fix #1738) 2018-07-06 16:22:44 -03:00
David Capello e06735a4c0 Move EditorPreRender code to EditorPostRender
This simplify Editor::drawOneSpriteUnclippedRect() impl to create an
alternative version of the renderer in the future.
2018-06-21 12:58:11 -03:00
David Capello 744e40b4b7 Show full animation length/tag length on status bar (fix #1528) 2018-06-08 16:41:24 -03:00
Gaspar Capello a7c7e82aa8 Fix clickable pivot pos in StandbyState (fix #1608)
Also reported in https://community.aseprite.org/t/pivot-point-doesnt-recalibrate-when-setting-its-direction/1228
2018-05-03 11:39:01 -03:00