diff --git a/src/slic3r/GUI/GLCanvas3D.cpp b/src/slic3r/GUI/GLCanvas3D.cpp index af4a24d65..235cb161c 100644 --- a/src/slic3r/GUI/GLCanvas3D.cpp +++ b/src/slic3r/GUI/GLCanvas3D.cpp @@ -3105,6 +3105,9 @@ void GLCanvas3D::on_char(wxKeyEvent& evt) #endif /* __APPLE__ */ post_event(SimpleEvent(EVT_GLTOOLBAR_DELETE_ALL)); break; + case WXK_CONTROL_Q: + post_event(SimpleEvent(EVT_GLTOOLBAR_CLONE)); + break; default: evt.Skip(); } } else { diff --git a/src/slic3r/GUI/GUI_Factories.cpp b/src/slic3r/GUI/GUI_Factories.cpp index 6519b4dac..25bf130e8 100644 --- a/src/slic3r/GUI/GUI_Factories.cpp +++ b/src/slic3r/GUI/GUI_Factories.cpp @@ -1452,7 +1452,12 @@ wxMenu* MenuFactory::assemble_part_menu() void MenuFactory::append_menu_item_clone(wxMenu* menu) { - append_menu_item(menu, wxID_ANY, _L("Clone") , "", +#ifdef __APPLE__ + static const wxString ctrl = ("Ctrl+"); +#else + static const wxString ctrl = _L("Ctrl+"); +#endif + append_menu_item(menu, wxID_ANY, _L("Clone") + "\t" + ctrl + "Q", "", [this](wxCommandEvent&) { plater()->clone_selection(); }, "", nullptr,