Browse Source

PixelPaint: Record action for all select operations to allow undo

Since selections with the select tools support undo, it makes
sense for the edit operations 'select all', 'none', 'invert' and
'clear selection' to also support undo.
Andreas Oppebøen 2 years ago
parent
commit
8cca9e94a2

+ 1 - 0
Userland/Applications/PixelPaint/ImageEditor.cpp

@@ -426,6 +426,7 @@ void ImageEditor::keydown_event(GUI::KeyEvent& event)
 
     if (event.key() == Key_Escape && !m_image->selection().is_empty()) {
         m_image->selection().clear();
+        did_complete_action("Clear Selection"sv);
         return;
     }
 

+ 3 - 0
Userland/Applications/PixelPaint/MainWidget.cpp

@@ -359,18 +359,21 @@ void MainWidget::initialize_menubar(GUI::Window& window)
         if (!editor->active_layer())
             return;
         editor->image().selection().merge(editor->active_layer()->relative_rect(), PixelPaint::Selection::MergeMode::Set);
+        editor->did_complete_action("Select All"sv);
     }));
     m_edit_menu->add_action(GUI::Action::create(
         "Clear &Selection", g_icon_bag.clear_selection, [&](auto&) {
             auto* editor = current_image_editor();
             VERIFY(editor);
             editor->image().selection().clear();
+            editor->did_complete_action("Clear Selection"sv);
         }));
     m_edit_menu->add_action(GUI::Action::create(
         "&Invert Selection", g_icon_bag.invert_selection, [&](auto&) {
             auto* editor = current_image_editor();
             VERIFY(editor);
             editor->image().selection().invert();
+            editor->did_complete_action("Invert Selection"sv);
         }));
 
     m_edit_menu->add_separator();