summaryrefslogtreecommitdiffstats
path: root/src/widgets/desktop-widget.cpp
diff options
context:
space:
mode:
authorAlexander Valavanis <valavanisalex@gmail.com>2019-06-05 19:33:55 +0000
committerAlexander Valavanis <valavanisalex@gmail.com>2019-06-05 19:33:55 +0000
commit2e40143d6e75d50bf659abddc5c7c25fb1bc2436 (patch)
treee2fa747c95569dc3f77fcdfa770b3d404ff065cc /src/widgets/desktop-widget.cpp
parentHackfest2019: Rm tautological tests (diff)
parentUse a flowbox when there are more than two options for font feature settings. (diff)
downloadinkscape-2e40143d6e75d50bf659abddc5c7c25fb1bc2436.tar.gz
inkscape-2e40143d6e75d50bf659abddc5c7c25fb1bc2436.zip
Merge changes
Diffstat (limited to 'src/widgets/desktop-widget.cpp')
-rw-r--r--src/widgets/desktop-widget.cpp19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/widgets/desktop-widget.cpp b/src/widgets/desktop-widget.cpp
index c48d6fbd5..e94448e2c 100644
--- a/src/widgets/desktop-widget.cpp
+++ b/src/widgets/desktop-widget.cpp
@@ -79,6 +79,9 @@
#include "toolbox.h"
#include "widget-sizes.h"
+#ifdef GDK_WINDOWING_QUARTZ
+#include <gtkosxapplication.h>
+#endif
using Inkscape::DocumentUndo;
using Inkscape::UI::Widget::UnitTracker;
@@ -919,6 +922,17 @@ sp_desktop_widget_realize (GtkWidget *widget)
window->get_style_context()->remove_class("symbolic");
}
}
+
+#ifdef GDK_WINDOWING_QUARTZ
+ // native macOS menu
+ auto osxapp = gtkosx_application_get();
+ auto menushell = static_cast<Gtk::MenuShell *>(dtw->menubar());
+ if (osxapp && menushell && window) {
+ menushell->set_parent(*window);
+ gtkosx_application_set_menu_bar(osxapp, menushell->gobj());
+ gtkosx_application_set_use_quartz_accelerators(osxapp, false);
+ }
+#endif
}
/* This is just to provide access to common functionality from sp_desktop_widget_realize() above
@@ -1677,7 +1691,12 @@ SPDesktopWidget* SPDesktopWidget::createInstance(SPDocument *document)
dtw->_menubar = build_menubar(dtw->desktop);
dtw->_menubar->set_name("MenuBar");
dtw->_menubar->show_all();
+
+#ifdef GDK_WINDOWING_QUARTZ
+ // native macOS menu: do this later because we don't have the window handle yet
+#else
dtw->_vbox->pack_start(*dtw->_menubar, false, false);
+#endif
dtw->layoutWidgets();