From a33e5748db44fc9f73e6411082a7a6ff7abaab08 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Fri, 13 Dec 2013 00:47:35 -0500 Subject: [PATCH] GtkHeaderBar: don't show dangling separators If we don't have a window icon, we hide the titlebar_icon, we still add it, so we can't simply go by the number of children when deciding whether to show the separator or now. Instead, update the separator visibility as we create the various buttons. --- gtk/gtkheaderbar.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/gtk/gtkheaderbar.c b/gtk/gtkheaderbar.c index 99902dba2f..e05fc92030 100644 --- a/gtk/gtkheaderbar.c +++ b/gtk/gtkheaderbar.c @@ -346,7 +346,6 @@ _gtk_header_bar_update_window_buttons (GtkHeaderBar *bar) t = g_strsplit (tokens[i], ",", -1); separator = gtk_separator_new (GTK_ORIENTATION_VERTICAL); - gtk_widget_show (separator); box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, priv->spacing); @@ -365,6 +364,8 @@ _gtk_header_bar_update_window_buttons (GtkHeaderBar *bar) priv->titlebar_icon = button; if (!_gtk_header_bar_update_window_icon (bar, window)) gtk_widget_hide (button); + else + gtk_widget_show (separator); } else if (strcmp (t[j], "menu") == 0 && menu != NULL) { @@ -383,6 +384,7 @@ _gtk_header_bar_update_window_buttons (GtkHeaderBar *bar) if (!_gtk_header_bar_update_window_icon (bar, window)) gtk_image_set_from_icon_name (GTK_IMAGE (priv->titlebar_icon), "process-stop-symbolic", GTK_ICON_SIZE_MENU); + gtk_widget_show (separator); } else if (strcmp (t[j], "minimize") == 0 && gtk_window_get_type_hint (window) == GDK_WINDOW_TYPE_HINT_NORMAL) @@ -400,6 +402,7 @@ _gtk_header_bar_update_window_buttons (GtkHeaderBar *bar) if (GTK_IS_ACCESSIBLE (accessible)) atk_object_set_name (accessible, _("Minimize")); priv->titlebar_min_button = button; + gtk_widget_show (separator); } else if (strcmp (t[j], "maximize") == 0 && gtk_window_get_resizable (window) && @@ -422,6 +425,7 @@ _gtk_header_bar_update_window_buttons (GtkHeaderBar *bar) if (GTK_IS_ACCESSIBLE (accessible)) atk_object_set_name (accessible, maximized ? _("Restore") : _("Maximize")); priv->titlebar_max_button = button; + gtk_widget_show (separator); } else if (strcmp (t[j], "close") == 0 && gtk_window_get_deletable (window) && @@ -440,6 +444,7 @@ _gtk_header_bar_update_window_buttons (GtkHeaderBar *bar) if (GTK_IS_ACCESSIBLE (accessible)) atk_object_set_name (accessible, _("Close")); priv->titlebar_close_button = button; + gtk_widget_show (separator); } if (button)