diff options
author | Matthias Clasen <mclasen@redhat.com> | 2013-12-13 01:19:12 -0500 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2013-12-13 01:21:06 -0500 |
commit | f3d22d2a9be9573fafef74cae8d43729145c6147 (patch) | |
tree | 23cde1d6d3d37824e2eee4256c544dc76ffa27d3 /gtk/gtkheaderbar.c | |
parent | cf8fb209e3dfde23a1ebf77eb28335ae00150e88 (diff) | |
download | gtk+-f3d22d2a9be9573fafef74cae8d43729145c6147.tar.gz |
Make app menu fallback a bit more reliable
If the theme has no 'menu' control in the window decorations,
show the menubar after all.
Diffstat (limited to 'gtk/gtkheaderbar.c')
-rw-r--r-- | gtk/gtkheaderbar.c | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/gtk/gtkheaderbar.c b/gtk/gtkheaderbar.c index 70a77d7e15..9964f12a7e 100644 --- a/gtk/gtkheaderbar.c +++ b/gtk/gtkheaderbar.c @@ -486,11 +486,24 @@ _gtk_header_bar_update_window_buttons (GtkHeaderBar *bar) } gboolean -_gtk_header_bar_get_shows_app_menu (GtkHeaderBar *bar) +_gtk_header_bar_shows_app_menu (GtkHeaderBar *bar) { GtkHeaderBarPrivate *priv = gtk_header_bar_get_instance_private (bar); + GtkWindow *window; + gchar *layout_desc; + gboolean ret; + + window = GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (bar))); + gtk_widget_style_get (GTK_WIDGET (window), + "decoration-button-layout", &layout_desc, + NULL); + + ret = priv->shows_wm_decorations && + (layout_desc && strstr (layout_desc, "menu")); + + g_free (layout_desc); - return (priv->titlebar_menu_button != NULL); + return ret; } static void |