path bar: Don't hide arrows

Changing the visibility of child widgets in size-allocate does
not work well with out current allocation and layout machinery.
To avoid the visual fallout, just keep the arrow buttons visible
and only change their sensitivity.

https://bugzilla.gnome.org/show_bug.cgi?id=754868
This commit is contained in:
Matthias Clasen 2016-01-24 16:29:40 -05:00
parent 761120a5e2
commit e8ad47498b

View File

@ -527,7 +527,7 @@ gtk_path_bar_size_allocate (GtkWidget *widget,
GList *list, *first_button;
gint width;
gint allocation_width;
gboolean need_sliders = FALSE;
gboolean need_sliders = TRUE;
gint up_slider_offset = 0;
gint down_slider_offset = 0;
GtkRequisition child_requisition;
@ -585,7 +585,7 @@ gtk_path_bar_size_allocate (GtkWidget *widget,
else
first_button = path_bar->priv->button_list;
need_sliders = TRUE;
/* To see how much space we have, and how many buttons we can display.
* We start at the first button, count forward until hit the new
* button, then count backwards.
@ -743,7 +743,7 @@ gtk_path_bar_size_allocate (GtkWidget *widget,
needs_reorder |= gtk_widget_get_child_visible (path_bar->priv->up_slider_button) == TRUE;
gtk_widget_set_child_visible (path_bar->priv->up_slider_button, FALSE);
}
if (need_sliders)
{
child_allocation.width = path_bar->priv->slider_width;