container: Simplify code

This code should not have any functional changes and just be simpler.
This commit is contained in:
Benjamin Otte
2012-04-09 20:28:45 +02:00
parent e2f89c0c6a
commit 8bda7442c8

View File

@ -1623,22 +1623,6 @@ gtk_container_set_reallocate_redraws (GtkContainer *container,
container->priv->reallocate_redraws = needs_redraws ? TRUE : FALSE; container->priv->reallocate_redraws = needs_redraws ? TRUE : FALSE;
} }
static GtkContainer*
gtk_container_get_resize_container (GtkContainer *container)
{
GtkWidget *parent;
GtkWidget *widget = GTK_WIDGET (container);
while ((parent = gtk_widget_get_parent (widget)))
{
widget = parent;
if (GTK_IS_RESIZE_CONTAINER (widget))
break;
}
return GTK_IS_RESIZE_CONTAINER (widget) ? (GtkContainer*) widget : NULL;
}
static gboolean static gboolean
gtk_container_idle_sizer (gpointer data) gtk_container_idle_sizer (gpointer data)
{ {
@ -1688,54 +1672,51 @@ static void
_gtk_container_queue_resize_internal (GtkContainer *container, _gtk_container_queue_resize_internal (GtkContainer *container,
gboolean invalidate_only) gboolean invalidate_only)
{ {
GtkContainer *resize_container;
GtkWidget *parent;
GtkWidget *widget; GtkWidget *widget;
g_return_if_fail (GTK_IS_CONTAINER (container)); g_return_if_fail (GTK_IS_CONTAINER (container));
widget = GTK_WIDGET (container); widget = GTK_WIDGET (container);
resize_container = gtk_container_get_resize_container (container); do
while (TRUE)
{ {
_gtk_widget_set_alloc_needed (widget, TRUE); _gtk_widget_set_alloc_needed (widget, TRUE);
_gtk_widget_set_width_request_needed (widget, TRUE); _gtk_widget_set_width_request_needed (widget, TRUE);
_gtk_widget_set_height_request_needed (widget, TRUE); _gtk_widget_set_height_request_needed (widget, TRUE);
if ((resize_container && widget == GTK_WIDGET (resize_container)) || if (GTK_IS_RESIZE_CONTAINER (widget))
!(parent = gtk_widget_get_parent (widget)))
break; break;
widget = parent; widget = gtk_widget_get_parent (widget);
} }
while (widget);
if (resize_container && !invalidate_only) if (widget && !invalidate_only)
{ {
if (gtk_widget_get_visible (GTK_WIDGET (resize_container)) && container = GTK_CONTAINER (widget);
(gtk_widget_is_toplevel (GTK_WIDGET (resize_container)) ||
gtk_widget_get_realized (GTK_WIDGET (resize_container)))) if (gtk_widget_get_visible (widget) &&
(gtk_widget_is_toplevel (widget) ||
gtk_widget_get_realized (widget)))
{ {
switch (resize_container->priv->resize_mode) switch (container->priv->resize_mode)
{ {
case GTK_RESIZE_QUEUE: case GTK_RESIZE_QUEUE:
if (!_gtk_widget_get_resize_pending (GTK_WIDGET (resize_container))) if (!_gtk_widget_get_resize_pending (widget))
{ {
_gtk_widget_set_resize_pending (GTK_WIDGET (resize_container), TRUE); _gtk_widget_set_resize_pending (widget, TRUE);
if (container_resize_queue == NULL) if (container_resize_queue == NULL)
gdk_threads_add_idle_full (GTK_PRIORITY_RESIZE, gdk_threads_add_idle_full (GTK_PRIORITY_RESIZE,
gtk_container_idle_sizer, gtk_container_idle_sizer,
NULL, NULL); NULL, NULL);
container_resize_queue = g_slist_prepend (container_resize_queue, resize_container); container_resize_queue = g_slist_prepend (container_resize_queue, container);
} }
break; break;
case GTK_RESIZE_IMMEDIATE: case GTK_RESIZE_IMMEDIATE:
_gtk_style_context_validate (gtk_widget_get_style_context (GTK_WIDGET (resize_container)), _gtk_style_context_validate (gtk_widget_get_style_context (widget),
g_get_monotonic_time (), g_get_monotonic_time (),
0); 0);
gtk_container_check_resize (resize_container);
break; break;
case GTK_RESIZE_PARENT: case GTK_RESIZE_PARENT:
@ -1749,7 +1730,7 @@ _gtk_container_queue_resize_internal (GtkContainer *container,
* changed while they where hidden (currently only evaluated by * changed while they where hidden (currently only evaluated by
* toplevels). * toplevels).
*/ */
resize_container->priv->need_resize = TRUE; GTK_CONTAINER (widget)->priv->need_resize = TRUE;
} }
} }
} }