[gtk+] GtkHeaderBar: don't show dangling separators



commit a33e5748db44fc9f73e6411082a7a6ff7abaab08
Author: Matthias Clasen <mclasen redhat com>
Date:   Fri Dec 13 00:47:35 2013 -0500

    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 files changed, 6 insertions(+), 1 deletions(-)
---
diff --git a/gtk/gtkheaderbar.c b/gtk/gtkheaderbar.c
index 99902db..e05fc92 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)


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]