mirror of
https://github.com/aseprite/aseprite.git
synced 2025-04-01 10:21:04 +00:00
[osx] Fix shortcuts for Edit actions when a native file dialog is displayed
Fixes #2719, related to #3615
This commit is contained in:
parent
c68fcb7da5
commit
c25649d865
@ -697,7 +697,7 @@
|
||||
<separator group="file_app" />
|
||||
<item command="Exit" text="@.file_exit" />
|
||||
</menu>
|
||||
<menu text="@.edit" id="edit_menu">
|
||||
<menu text="@.edit" id="edit_menu" standard="edit">
|
||||
<item command="Undo" text="@.edit_undo" />
|
||||
<item command="Redo" text="@.edit_redo" />
|
||||
<item command="UndoHistory" text="@.edit_undo_history" group="edit_undo" />
|
||||
|
2
laf
2
laf
@ -1 +1 @@
|
||||
Subproject commit 1b057f8f19be19ffc5aaa87d32312d3c0bcba86e
|
||||
Subproject commit 63aa609864108d12dad979a2701c19bee58d4283
|
@ -696,6 +696,7 @@ Widget* AppMenus::convertXmlelemToMenuitem(TiXmlElement* elem)
|
||||
{
|
||||
const char* id = elem->Attribute("id");
|
||||
const char* group = elem->Attribute("group");
|
||||
const char* standard = elem->Attribute("standard");
|
||||
|
||||
// is it a <separator>?
|
||||
if (strcmp(elem->Value(), "separator") == 0) {
|
||||
@ -745,6 +746,9 @@ Widget* AppMenus::convertXmlelemToMenuitem(TiXmlElement* elem)
|
||||
if (group)
|
||||
m_groups[group].end = menuitem;
|
||||
|
||||
if (standard && strcmp(standard, "edit") == 0)
|
||||
menuitem->setStandardEditMenu();
|
||||
|
||||
// Has it a ID?
|
||||
if (id) {
|
||||
if (std::strcmp(id, "help_menu") == 0) {
|
||||
@ -985,6 +989,10 @@ void AppMenus::createNativeSubmenus(os::Menu* osMenu,
|
||||
if (appMenuItem) {
|
||||
native.menuItem = osItem;
|
||||
appMenuItem->setNative(native);
|
||||
|
||||
// Set this menu item as the standard "Edit" item for macOS
|
||||
if (appMenuItem->isStandardEditMenu())
|
||||
osItem->setAsStandardEditMenuItem();
|
||||
}
|
||||
|
||||
if (child->type() == ui::kMenuItemWidget &&
|
||||
|
@ -42,7 +42,6 @@ AppMenuItem::AppMenuItem(const std::string& text,
|
||||
, m_key(nullptr)
|
||||
, m_commandId(commandId)
|
||||
, m_params(params)
|
||||
, m_isRecentFileItem(false)
|
||||
, m_native(nullptr)
|
||||
{
|
||||
}
|
||||
|
@ -52,6 +52,13 @@ namespace app {
|
||||
void disposeNative();
|
||||
void syncNativeMenuItemKeyShortcut();
|
||||
|
||||
// Indicates if this is the standard "Edit" menu, used for macOS
|
||||
// which requires a standard "Edit" menu when the native file
|
||||
// dialog is displayed, so Command+C/X/V/A, etc. shortcuts start
|
||||
// working as expected.
|
||||
bool isStandardEditMenu() const { return m_isStandardEditMenu; }
|
||||
void setStandardEditMenu() { m_isStandardEditMenu = true; }
|
||||
|
||||
static void setContextParams(const Params& params);
|
||||
|
||||
protected:
|
||||
@ -64,7 +71,8 @@ namespace app {
|
||||
KeyPtr m_key;
|
||||
std::string m_commandId;
|
||||
Params m_params;
|
||||
bool m_isRecentFileItem;
|
||||
bool m_isRecentFileItem = false;
|
||||
bool m_isStandardEditMenu = false;
|
||||
std::unique_ptr<Native> m_native;
|
||||
|
||||
static Params s_contextParams;
|
||||
|
Loading…
x
Reference in New Issue
Block a user