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.
This commit is contained in:
@ -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)
|
||||
|
||||
Reference in New Issue
Block a user