Commit 5aec427c authored by Matthias Clasen's avatar Matthias Clasen

paned: Fix size allocation

We were passing negative widths to height-for-width calls that
didn't expect this.
parent 26d42771
......@@ -1178,36 +1178,28 @@ gtk_paned_measure_handle (GtkCssGadget *gadget,
gpointer data)
{
GtkWidget *widget = gtk_css_gadget_get_owner (gadget);
GtkPaned *paned = GTK_PANED (widget);
GtkPanedPrivate *priv = paned->priv;
GtkStyleContext *context;
gint handle_size;
GtkCssStyle *style;
gint min_size;
style = gtk_css_gadget_get_style (gadget);
if (orientation == priv->orientation)
if (orientation == GTK_ORIENTATION_HORIZONTAL)
min_size = get_number (style, GTK_CSS_PROPERTY_MIN_WIDTH);
else
min_size = get_number (style, GTK_CSS_PROPERTY_MIN_HEIGHT);
if (min_size != 0)
*minimum = *natural = min_size;
else
{
if (orientation == GTK_ORIENTATION_HORIZONTAL)
min_size = get_number (style, GTK_CSS_PROPERTY_MIN_WIDTH);
else
min_size = get_number (style, GTK_CSS_PROPERTY_MIN_HEIGHT);
GtkStyleContext *context;
if (min_size != 0)
*minimum = *natural = min_size;
else
{
context = gtk_widget_get_style_context (widget);
gtk_style_context_save_to_node (context, gtk_css_gadget_get_node (gadget));
gtk_widget_style_get (widget, "handle-size", &handle_size, NULL);
gtk_style_context_restore (context);
*minimum = *natural = handle_size;
}
context = gtk_widget_get_style_context (widget);
gtk_style_context_save_to_node (context, gtk_css_gadget_get_node (gadget));
gtk_widget_style_get (widget, "handle-size", &min_size, NULL);
gtk_style_context_restore (context);
*minimum = *natural = min_size;
}
else if (orientation == GTK_ORIENTATION_HORIZONTAL)
*minimum = *natural = gtk_widget_get_allocated_width (widget);
else
*minimum = *natural = gtk_widget_get_allocated_height(widget);
}
static void
......@@ -1411,7 +1403,7 @@ gtk_paned_allocate (GtkCssGadget *gadget,
window1_allocation.y = window2_allocation.y = allocation->y;
window2_allocation.x = window1_allocation.x + priv->child1_size + priv->handle_pos.width;
window2_allocation.width = MAX (1, allocation->x + allocation->width - window2_allocation.x);
window2_allocation.width = MAX (1, allocation->width - priv->child1_size - priv->handle_pos.width);
if (gtk_widget_get_direction (GTK_WIDGET (widget)) == GTK_TEXT_DIR_RTL)
{
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment