@@ -841,7 +841,9 @@ EventHandlerResult InteractionHandler::HandleKeyPress (NodeUIEnvironment& env, c
841841 switch (pressedKey.GetKeyCode ()) {
842842 case KeyCode::Delete:
843843 {
844- command.reset (new DeleteNodesMenuCommand (uiManager, env, selectedNodes));
844+ if (!selectedNodes.IsEmpty ()) {
845+ command.reset (new DeleteNodesMenuCommand (uiManager, env, selectedNodes));
846+ }
845847 }
846848 break ;
847849 case KeyCode::SelectAll:
@@ -856,18 +858,24 @@ EventHandlerResult InteractionHandler::HandleKeyPress (NodeUIEnvironment& env, c
856858 break ;
857859 case KeyCode::Copy:
858860 {
859- command.reset (new CopyNodesMenuCommand (uiManager, selectedNodes));
861+ if (!selectedNodes.IsEmpty ()) {
862+ command.reset (new CopyNodesMenuCommand (uiManager, selectedNodes));
863+ }
860864 }
861865 break ;
862866 case KeyCode::Paste:
863867 {
864- Point modelPastePosition = pastePositionCalculator.CalculatePastePosition (uiManager, env);
865- command.reset (new PasteNodesMenuCommand (uiManager, modelPastePosition));
868+ if (uiManager.CanPaste ()) {
869+ Point modelPastePosition = pastePositionCalculator.CalculatePastePosition (uiManager, env);
870+ command.reset (new PasteNodesMenuCommand (uiManager, modelPastePosition));
871+ }
866872 }
867873 break ;
868874 case KeyCode::Group:
869875 {
870- command.reset (new CreateGroupMenuCommand (uiManager, selectedNodes));
876+ if (!selectedNodes.IsEmpty ()) {
877+ command.reset (new CreateGroupMenuCommand (uiManager, selectedNodes));
878+ }
871879 }
872880 break ;
873881 case KeyCode::Undo:
0 commit comments