aseprite/src/app/commands
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
..
filters Lock document in Tx() ctor (part of #2430) 2023-12-27 11:05:15 -03:00
cmd_about.cpp Simplify About dialog 2021-04-13 19:08:33 -03:00
cmd_add_color.cpp Lock document in Tx() ctor (part of #2430) 2023-12-27 11:05:15 -03:00
cmd_advanced_mode.cpp Remove unused Command::clone() member function 2019-01-07 17:03:38 -03:00
cmd_background_from_layer.cpp Lock document in Tx() ctor (part of #2430) 2023-12-27 11:05:15 -03:00
cmd_cancel.cpp Remove unused Command::clone() member function 2019-01-07 17:03:38 -03:00
cmd_canvas_size.cpp Lock document in Tx() ctor (part of #2430) 2023-12-27 11:05:15 -03:00
cmd_cel_opacity.cpp Lock document in Tx() ctor (part of #2430) 2023-12-27 11:05:15 -03:00
cmd_cel_properties.cpp Lock document in Tx() ctor (part of #2430) 2023-12-27 11:05:15 -03:00
cmd_change_brush.cpp Add support to flip/rotate tiles to ChangeBrush command (like #1222) 2023-11-09 16:44:46 -03:00
cmd_change_color.cpp Enable cycling colors when palette size=1 so RGB/HSV colors are converted to index=0 anyway 2021-09-01 10:38:35 -03:00
cmd_change_pixel_format.cpp Fix strings spelling typo: Difussion -> Diffusion. Notice, this is not compatible for translations. 2023-11-20 20:10:59 -03:00
cmd_clear_cel.cpp Lock document in Tx() ctor (part of #2430) 2023-12-27 11:05:15 -03:00
cmd_clear_recent_files.cpp Put "Reopen Closed File" and "Clear Recent Files" options inside "File > Open Recent" menu 2019-05-27 23:53:57 -03:00
cmd_clear.cpp Remove unused Command::clone() member function 2019-01-07 17:03:38 -03:00
cmd_close_file.cpp Remove current_editor, replace with Editor::activeEditor() 2022-10-20 12:31:22 -03:00
cmd_color_quantization.cpp Remove ui::Event& args from ui::Button::Click signal 2023-01-12 11:00:16 -03:00
cmd_contiguous_fill.cpp Remove unused Command::clone() member function 2019-01-07 17:03:38 -03:00
cmd_copy_cel.cpp Remove unused Command::clone() member function 2019-01-07 17:03:38 -03:00
cmd_copy_merged.cpp Refactor clipboard code 2020-09-25 11:14:52 -03:00
cmd_copy.cpp Remove unused Command::clone() member function 2019-01-07 17:03:38 -03:00
cmd_crop.cpp Lock document in Tx() ctor (part of #2430) 2023-12-27 11:05:15 -03:00
cmd_cut.cpp Remove unused Command::clone() member function 2019-01-07 17:03:38 -03:00
cmd_deselect_mask.cpp Lock document in Tx() ctor (part of #2430) 2023-12-27 11:05:15 -03:00
cmd_developer_console.cpp Generate the list of command IDs from en.ini file 2017-12-01 15:10:21 -03:00
cmd_discard_brush.cpp Add support to copy/cut/paste/transform tilemaps 2020-10-02 19:03:53 -03:00
cmd_duplicate_layer.cpp Lock document in Tx() ctor (part of #2430) 2023-12-27 11:05:15 -03:00
cmd_duplicate_sprite.cpp Remove current_editor, replace with Editor::activeEditor() 2022-10-20 12:31:22 -03:00
cmd_duplicate_view.cpp Remove unused Command::clone() member function 2019-01-07 17:03:38 -03:00
cmd_enter_license.cpp Create EnterLicense dialog 2022-06-28 19:09:10 -03:00
cmd_exit.cpp New initial Lua debugger version (#1967) 2021-10-12 16:52:14 -03:00
cmd_export_sprite_sheet.cpp Several fixes/rewording for --tagnames-format CLI and GUI 2022-12-23 09:59:01 -03:00
cmd_export_sprite_sheet.h Added cli option --tagname-format 2022-12-23 09:11:58 -03:00
cmd_eyedropper.cpp Add support for multiple native windows (#139, #250, #962, etc.) 2021-03-02 13:50:49 -03:00
cmd_eyedropper.h Add fg/bg tiles selectors in ColorBar 2020-08-21 18:28:31 -03:00
cmd_fill_and_stroke.cpp Lock document in Tx() ctor (part of #2430) 2023-12-27 11:05:15 -03:00
cmd_fit_screen.cpp Remove current_editor, replace with Editor::activeEditor() 2022-10-20 12:31:22 -03:00
cmd_flatten_layers.cpp Lock document in Tx() ctor (part of #2430) 2023-12-27 11:05:15 -03:00
cmd_flip.cpp Lock document in Tx() ctor (part of #2430) 2023-12-27 11:05:15 -03:00
cmd_flip.h Remove unused Command::clone() member function 2019-01-07 17:03:38 -03:00
cmd_frame_properties.cpp Lock document in Tx() ctor (part of #2430) 2023-12-27 11:05:15 -03:00
cmd_frame_tag_properties.cpp Lock document in Tx() ctor (part of #2430) 2023-12-27 11:05:15 -03:00
cmd_fullscreen_mode.cpp Backport FullscreenMode command (#464) 2021-07-05 20:11:46 -03:00
cmd_fullscreen_preview.cpp Fix FullscreenPreview for SimpleRenderer 2023-04-07 20:26:16 -03:00
cmd_goto_frame.cpp Remove current_editor, replace with Editor::activeEditor() 2022-10-20 12:31:22 -03:00
cmd_goto_layer.cpp Remove current_editor, replace with Editor::activeEditor() 2022-10-20 12:31:22 -03:00
cmd_goto_tab.cpp Remove unused Command::clone() member function 2019-01-07 17:03:38 -03:00
cmd_grid.cpp Lock document in Tx() ctor (part of #2430) 2023-12-27 11:05:15 -03:00
cmd_home.cpp Generate the list of command IDs from en.ini file 2017-12-01 15:10:21 -03:00
cmd_import_sprite_sheet.cpp Lock document in Tx() ctor (part of #2430) 2023-12-27 11:05:15 -03:00
cmd_invert_mask.cpp Lock document in Tx() ctor (part of #2430) 2023-12-27 11:05:15 -03:00
cmd_keyboard_shortcuts.cpp Use new ScopedValue w/o old arg + C++17 class template argument deduction (CTAD) 2023-04-14 13:43:36 -03:00
cmd_launch.cpp Move PACKAGE/VERSION, etc. to new ver-lib 2020-03-16 10:31:32 -03:00
cmd_layer_from_background.cpp Lock document in Tx() ctor (part of #2430) 2023-12-27 11:05:15 -03:00
cmd_layer_lock.cpp Remove unused Command::clone() member function 2019-01-07 17:03:38 -03:00
cmd_layer_opacity.cpp Lock document in Tx() ctor (part of #2430) 2023-12-27 11:05:15 -03:00
cmd_layer_properties.cpp Lock document in Tx() ctor (part of #2430) 2023-12-27 11:05:15 -03:00
cmd_layer_visibility.cpp Remove unused Command::clone() member function 2019-01-07 17:03:38 -03:00
cmd_link_cels.cpp Lock document in Tx() ctor (part of #2430) 2023-12-27 11:05:15 -03:00
cmd_load_mask.cpp Lock document in Tx() ctor (part of #2430) 2023-12-27 11:05:15 -03:00
cmd_load_palette.cpp Fix crash calling app.command.LoadPalette() when the UI is not available (fix #3847) 2023-05-15 17:31:46 -03:00
cmd_mask_all.cpp Lock document in Tx() ctor (part of #2430) 2023-12-27 11:05:15 -03:00
cmd_mask_by_color.cpp Lock document in Tx() ctor (part of #2430) 2023-12-27 11:05:15 -03:00
cmd_mask_content.cpp Lock document in Tx() ctor (part of #2430) 2023-12-27 11:05:15 -03:00
cmd_merge_down_layer.cpp Lock document in Tx() ctor (part of #2430) 2023-12-27 11:05:15 -03:00
cmd_modify_selection.cpp Lock document in Tx() ctor (part of #2430) 2023-12-27 11:05:15 -03:00
cmd_move_cel.cpp Remove unused Command::clone() member function 2019-01-07 17:03:38 -03:00
cmd_move_mask.cpp Lock document in Tx() ctor (part of #2430) 2023-12-27 11:05:15 -03:00
cmd_move_mask.h Fix shift after flip throws error (fix #1873) 2019-02-15 11:18:14 -03:00
cmd_new_brush.cpp Lock document in Tx() ctor (part of #2430) 2023-12-27 11:05:15 -03:00
cmd_new_file.cpp Adjust styles to make them work with the new buttonset 2023-02-27 09:44:42 -03:00
cmd_new_frame_tag.cpp Lock document in Tx() ctor (part of #2430) 2023-12-27 11:05:15 -03:00
cmd_new_frame.cpp Lock document in Tx() ctor (part of #2430) 2023-12-27 11:05:15 -03:00
cmd_new_layer.cpp Fix crash copying, pasting, and transforming selection (fix #4249) 2023-12-29 17:22:10 -03:00
cmd_new_sprite_from_selection.cpp Fix sprintf() warnings using snprintf() or fmt::format() 2023-09-27 19:57:41 -03:00
cmd_onionskin.cpp Remove unused Command::clone() member function 2019-01-07 17:03:38 -03:00
cmd_open_browser.cpp Remove unused Command::clone() member function 2019-01-07 17:03:38 -03:00
cmd_open_file.cpp Remove current_editor, replace with Editor::activeEditor() 2022-10-20 12:31:22 -03:00
cmd_open_file.h Add option to disable the "open sequence of files" dialog 2021-04-12 16:57:02 -03:00
cmd_open_group.cpp Fix bug where Layer > Open Group didn't update the Timeline rows 2022-10-24 17:17:06 -03:00
cmd_open_in_folder.cpp Remove unused Command::clone() member function 2019-01-07 17:03:38 -03:00
cmd_open_script_folder.cpp Add File > Scripts menu 2018-09-05 13:35:13 -03:00
cmd_open_with_app.cpp Remove unused Command::clone() member function 2019-01-07 17:03:38 -03:00
cmd_options.cpp Lock document in Tx() ctor (part of #2430) 2023-12-27 11:05:15 -03:00
cmd_palette_editor.cpp Simplify strings for PaletteEditor command removing leading blanks 2023-12-07 12:11:00 -03:00
cmd_palette_size.cpp Lock document in Tx() ctor (part of #2430) 2023-12-27 11:05:15 -03:00
cmd_paste_text.cpp Remove current_editor, replace with Editor::activeEditor() 2022-10-20 12:31:22 -03:00
cmd_paste.cpp Remove unused Command::clone() member function 2019-01-07 17:03:38 -03:00
cmd_pixel_perfect_mode.cpp Remove unused Command::clone() member function 2019-01-07 17:03:38 -03:00
cmd_play_animation.cpp Add warning when loading unsupported property type and mark the file as read-only (fix #3812, fix #3811) 2023-05-08 17:37:05 -03:00
cmd_refresh.cpp Fix crash if we press F5/reload menus when we have a menu open (fix #2496) 2021-06-28 21:13:56 -03:00
cmd_remove_frame_tag.cpp Lock document in Tx() ctor (part of #2430) 2023-12-27 11:05:15 -03:00
cmd_remove_frame.cpp Lock document in Tx() ctor (part of #2430) 2023-12-27 11:05:15 -03:00
cmd_remove_layer.cpp Lock document in Tx() ctor (part of #2430) 2023-12-27 11:05:15 -03:00
cmd_remove_slice.cpp Lock document in Tx() ctor (part of #2430) 2023-12-27 11:05:15 -03:00
cmd_reopen_closed_file.cpp New option to configure how much time we keep a closed sprite on RAM 2019-06-07 13:17:21 -03:00
cmd_repeat_last_export.cpp Remove unused Command::clone() member function 2019-01-07 17:03:38 -03:00
cmd_reselect_mask.cpp Lock document in Tx() ctor (part of #2430) 2023-12-27 11:05:15 -03:00
cmd_reverse_frames.cpp Remove unused Command::clone() member function 2019-01-07 17:03:38 -03:00
cmd_rotate.cpp Remove current_editor, replace with Editor::activeEditor() 2022-10-20 12:31:22 -03:00
cmd_rotate.h Remove unused Command::clone() member function 2019-01-07 17:03:38 -03:00
cmd_run_script.cpp [lua] Add require() function (fix aseprite/api#10) 2023-04-18 19:41:01 -03:00
cmd_save_file.cpp Fix exporting selection to gif/fli/webp files (fix #3827) 2023-07-11 13:33:45 -03:00
cmd_save_file.h Add the logic side to export the selection only (fix #645) 2022-08-12 20:11:25 -03:00
cmd_save_mask.cpp Add missing language strings when loading/saving components 2022-10-12 14:21:21 -03:00
cmd_save_palette.cpp Add missing language strings when loading/saving components 2022-10-12 14:21:21 -03:00
cmd_scroll_center.cpp Remove current_editor, replace with Editor::activeEditor() 2022-10-20 12:31:22 -03:00
cmd_scroll.cpp Remove current_editor, replace with Editor::activeEditor() 2022-10-20 12:31:22 -03:00
cmd_select_palette.cpp Add octree quantization algorithm supports alpha channel 2021-06-04 10:06:06 -03:00
cmd_select_tile.cpp Lock document in Tx() ctor (part of #2430) 2023-12-27 11:05:15 -03:00
cmd_set_color_selector.cpp Remove unused Command::clone() member function 2019-01-07 17:03:38 -03:00
cmd_set_ink_type.cpp Add "ink" parameter to app.useTool() + minor needed refactors 2020-05-20 17:15:30 -03:00
cmd_set_loop_section.cpp Lock document in Tx() ctor (part of #2430) 2023-12-27 11:05:15 -03:00
cmd_set_palette_entry_size.cpp Remove unused Command::clone() member function 2019-01-07 17:03:38 -03:00
cmd_set_palette.cpp Lock document in Tx() ctor (part of #2430) 2023-12-27 11:05:15 -03:00
cmd_set_palette.h Remove unused Command::clone() member function 2019-01-07 17:03:38 -03:00
cmd_set_same_ink.cpp Remove unused Command::clone() member function 2019-01-07 17:03:38 -03:00
cmd_show.cpp Enable several ShowSomething commands in non-UI environments 2023-03-28 13:42:34 -03:00
cmd_slice_properties.cpp Lock document in Tx() ctor (part of #2430) 2023-12-27 11:05:15 -03:00
cmd_sprite_properties.cpp Lock document in Tx() ctor (part of #2430) 2023-12-27 11:05:15 -03:00
cmd_sprite_size.cpp Minor change in doc::Tileset internal structure 2023-02-13 17:20:40 -03:00
cmd_swap_checkerboard_colors.cpp Remove current_editor, replace with Editor::activeEditor() 2022-10-20 12:31:22 -03:00
cmd_switch_colors.cpp Remove current_editor, replace with Editor::activeEditor() 2022-10-20 12:31:22 -03:00
cmd_symmetry_mode.cpp Remove unused Command::clone() member function 2019-01-07 17:03:38 -03:00
cmd_tiled_mode.cpp Remove unused Command::clone() member function 2019-01-07 17:03:38 -03:00
cmd_timeline.cpp Specialize Params::get_as<bool>() to read "true" as a true bool 2019-03-22 11:47:45 -03:00
cmd_toggle_preview.cpp Remove unused Command::clone() member function 2019-01-07 17:03:38 -03:00
cmd_toggle_tiles_mode.cpp Add possibility to paint with tiles 2020-06-25 19:21:35 -03:00
cmd_toggle_timeline_thumbnails.cpp Fix F6 shortcut to show the timeline thumbnail by default (fix #4020) 2023-09-20 11:43:43 -03:00
cmd_undo_history.cpp Fix Doc::isModified() when we are in a similar UndoState to the saved one 2022-11-02 09:58:18 -03:00
cmd_undo.cpp Remove current_editor, replace with Editor::activeEditor() 2022-10-20 12:31:22 -03:00
cmd_unlink_cel.cpp Lock document in Tx() ctor (part of #2430) 2023-12-27 11:05:15 -03:00
cmd_zoom.cpp Remove current_editor, replace with Editor::activeEditor() 2022-10-20 12:31:22 -03:00
command_factory.h Replace GPL license with the new EULA 2016-08-29 13:08:21 -03:00
command_ids.h Generate the list of command IDs from en.ini file 2017-12-01 15:10:21 -03:00
command.cpp Update commands strings when language change 2022-10-12 13:22:26 -03:00
command.h Update commands strings when language change 2022-10-12 13:22:26 -03:00
commands_list.h Add Shift+F7 to toggle other layers visibility on Preview window 2023-07-19 10:56:16 -03:00
commands.cpp Add support for scripts on extensions (#1949) 2020-04-02 20:21:21 -03:00
commands.h Add support for scripts on extensions (#1949) 2020-04-02 20:21:21 -03:00
convert_layer.cpp Lock document in Tx() ctor (part of #2430) 2023-12-27 11:05:15 -03:00
copy_path.cpp Add "Copy Path" option when right-clicking a sprite tab 2023-01-05 14:23:15 -03:00
debugger.cpp Merge branch 'main' into beta 2022-06-10 10:31:13 -03:00
debugger.h New initial Lua debugger version (#1967) 2021-10-12 16:52:14 -03:00
export_tileset.cpp Add "File > Export > Export Tileset" option (#3240) 2022-08-18 14:56:43 -03:00
move_colors_command.cpp Lock document in Tx() ctor (part of #2430) 2023-12-27 11:05:15 -03:00
move_thing.cpp Save grid bounds inside .aseprite files and doc::Sprite (fix #688) 2019-10-10 15:08:59 -03:00
move_thing.h Move command friendly names to the strings file 2017-11-30 23:41:45 -03:00
move_tiles_command.cpp Lock document in Tx() ctor (part of #2430) 2023-12-27 11:05:15 -03:00
new_params.cpp Minor changes removing "using namespace doc" from app/color.h 2023-07-17 15:02:15 -03:00
new_params.h Add "File > Export > Export Tileset" option (#3240) 2022-08-18 14:56:43 -03:00
params.h Specialize Params::get_as<bool>() to read "true" as a true bool 2019-03-22 11:47:45 -03:00
quick_command.cpp Remove unused Command::clone() member function 2019-01-07 17:03:38 -03:00
quick_command.h Remove unused Command::clone() member function 2019-01-07 17:03:38 -03:00
screenshot.cpp Backport new laf API to main branch of aseprite 2021-07-05 17:51:29 -03:00
set_playback_speed.cpp Put playback options into Frame > Playback submenu 2023-03-21 17:18:05 -03:00
show_menu.cpp Add ShowMenu command so the user can customize Alt+top level menu mnemonic shortcuts (#3239) 2022-04-12 22:52:09 -03:00
tileset_mode.cpp Add Space+N/Tab/1,2,3 to handle tilemap modes 2020-02-17 16:36:18 -03:00
toggle_other_layers_opacity.cpp Add Shift+F7 to toggle other layers visibility on Preview window 2023-07-19 10:56:16 -03:00
toggle_play_option.cpp Put playback options into Frame > Playback submenu 2023-03-21 17:18:05 -03:00