From 5761f02ec9334d334e1ed29294c018b3f0987f63 Mon Sep 17 00:00:00 2001 From: Iain Lane Date: Mon, 24 Nov 2014 11:31:08 +0000 Subject: [PATCH 2/2] Only use a header bar in GNOME (shell) Otherwise use a normal titlebar and use the headerbar like a toolbar. https://bugzilla.gnome.org/show_bug.cgi?id=740617 --- src/nautilus-window.c | 32 ++++++++++++++++++++++++++++++++ src/resources/ui/nautilus-window.ui | 2 +- 2 files changed, 33 insertions(+), 1 deletion(-) --- a/src/nautilus-window.c +++ b/src/nautilus-window.c @@ -105,6 +105,7 @@ GList *slots; NautilusWindowSlot *active_slot; + GtkWidget *content_grid; GtkWidget *content_paned; /* Side Pane */ @@ -2095,6 +2096,37 @@ NautilusWindowPrivate *priv; GtkWidget *path_bar; GtkWidget *location_entry; + GtkStyleContext *context; + const gchar *xdg_current_desktop; + g_auto(GStrv) strv = NULL; + + xdg_current_desktop = g_getenv ("XDG_CURRENT_DESKTOP"); + + if (xdg_current_desktop) + { + strv = g_strsplit (xdg_current_desktop, ":", 0); + + if (g_strv_contains ((const gchar * const *) strv, "Unity")) + { + priv = nautilus_window_get_instance_private (window); + context = gtk_widget_get_style_context (priv->toolbar); + gtk_style_context_remove_class (context, GTK_STYLE_CLASS_TITLEBAR); + gtk_style_context_add_class (context, GTK_STYLE_CLASS_PRIMARY_TOOLBAR); + gtk_window_set_titlebar (GTK_WINDOW (window), NULL); + gtk_header_bar_set_show_close_button (GTK_HEADER_BAR (priv->toolbar), + FALSE); + gtk_grid_insert_row (GTK_GRID (priv->content_grid), 0); + gtk_grid_attach_next_to (GTK_GRID (priv->content_grid), + priv->toolbar, + priv->content_paned, + GTK_POS_TOP, + 1, 1); + gtk_widget_set_hexpand (priv->toolbar, TRUE); + gtk_widget_set_vexpand (priv->toolbar, FALSE); + gtk_widget_show (priv->toolbar); + } + + } priv = nautilus_window_get_instance_private (window); @@ -2934,6 +2966,7 @@ gtk_widget_class_set_template_from_resource (wclass, "/org/gnome/nautilus/ui/nautilus-window.ui"); gtk_widget_class_bind_template_child_private (wclass, NautilusWindow, toolbar); + gtk_widget_class_bind_template_child_private (wclass, NautilusWindow, content_grid); gtk_widget_class_bind_template_child_private (wclass, NautilusWindow, content_paned); gtk_widget_class_bind_template_child_private (wclass, NautilusWindow, sidebar); gtk_widget_class_bind_template_child_private (wclass, NautilusWindow, places_sidebar); --- a/src/resources/ui/nautilus-window.ui +++ b/src/resources/ui/nautilus-window.ui @@ -17,7 +17,7 @@ - + True