summaryrefslogtreecommitdiffstats
path: root/src/widgets
diff options
context:
space:
mode:
authorThomas Holder <thomas@thomas-holder.de>2019-07-07 15:38:50 +0000
committerThomas Holder <thomas@thomas-holder.de>2019-07-11 21:09:59 +0000
commitc8e95a89313c4a5943295914ff40723de20a145e (patch)
tree8ecc6fe720f5f663aac14317c1063f7370444aa5 /src/widgets
parentCMake: Sync states of WITH_NLS and ENABLE_NLS if gettext isn't found (diff)
downloadinkscape-c8e95a89313c4a5943295914ff40723de20a145e.tar.gz
inkscape-c8e95a89313c4a5943295914ff40723de20a145e.zip
macOS menu: "Window" before "Help"
Closes #322
Diffstat (limited to 'src/widgets')
-rw-r--r--src/widgets/desktop-widget.cpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/widgets/desktop-widget.cpp b/src/widgets/desktop-widget.cpp
index be477baf4..99f24f818 100644
--- a/src/widgets/desktop-widget.cpp
+++ b/src/widgets/desktop-widget.cpp
@@ -878,6 +878,19 @@ sp_desktop_widget_size_allocate (GtkWidget *widget, GtkAllocation *allocation)
}
}
+#ifdef GDK_WINDOWING_QUARTZ
+static GtkMenuItem *_get_help_menu(GtkMenuShell *menu)
+{
+ // Assume "Help" is the last child in menu
+ GtkMenuItem *last = nullptr;
+ auto callback = [](GtkWidget *widget, gpointer data) {
+ *static_cast<GtkMenuItem **>(data) = GTK_MENU_ITEM(widget);
+ };
+ gtk_container_foreach(GTK_CONTAINER(menu), callback, &last);
+ return last;
+}
+#endif
+
/**
* Callback to realize desktop widget.
*/
@@ -939,6 +952,7 @@ sp_desktop_widget_realize (GtkWidget *widget)
menushell->set_parent(*window);
gtkosx_application_set_menu_bar(osxapp, menushell->gobj());
gtkosx_application_set_use_quartz_accelerators(osxapp, false);
+ gtkosx_application_set_help_menu(osxapp, _get_help_menu(menushell->gobj()));
gtkosx_application_set_window_menu(osxapp, nullptr);
}
#endif