summaryrefslogtreecommitdiff
path: root/gtk/gtkcontainer.c
diff options
context:
space:
mode:
authorBenjamin Otte <otte@redhat.com>2012-04-09 21:04:47 +0200
committerBenjamin Otte <otte@redhat.com>2012-04-17 08:59:22 +0200
commit97dc45f8a503819ad833b6ea35fdafc58fc02bae (patch)
tree5232248ef8ff3cfe41cda7c5020cca75a2de288a /gtk/gtkcontainer.c
parent090f30c559533cec71a7bc7b35855070ac94281b (diff)
downloadgtk+-97dc45f8a503819ad833b6ea35fdafc58fc02bae.tar.gz
container: Split out a function
Diffstat (limited to 'gtk/gtkcontainer.c')
-rw-r--r--gtk/gtkcontainer.c75
1 files changed, 42 insertions, 33 deletions
diff --git a/gtk/gtkcontainer.c b/gtk/gtkcontainer.c
index 75c7d53a89..962afdeb9d 100644
--- a/gtk/gtkcontainer.c
+++ b/gtk/gtkcontainer.c
@@ -1666,6 +1666,47 @@ gtk_container_idle_sizer (gpointer data)
return FALSE;
}
+void
+_gtk_container_queue_resize_handler (GtkContainer *container)
+{
+ GtkWidget *widget;
+
+ g_return_if_fail (GTK_IS_RESIZE_CONTAINER (container));
+
+ widget = GTK_WIDGET (container);
+
+ if (gtk_widget_get_visible (widget) &&
+ (gtk_widget_is_toplevel (widget) ||
+ gtk_widget_get_realized (widget)))
+ {
+ switch (container->priv->resize_mode)
+ {
+ case GTK_RESIZE_QUEUE:
+ if (!_gtk_widget_get_resize_pending (widget))
+ {
+ _gtk_widget_set_resize_pending (widget, TRUE);
+ if (container_resize_queue == NULL)
+ gdk_threads_add_idle_full (GTK_PRIORITY_RESIZE,
+ gtk_container_idle_sizer,
+ NULL, NULL);
+ container_resize_queue = g_slist_prepend (container_resize_queue, container);
+ }
+ break;
+
+ case GTK_RESIZE_IMMEDIATE:
+ _gtk_style_context_validate (gtk_widget_get_style_context (widget),
+ g_get_monotonic_time (),
+ 0);
+ gtk_container_check_resize (container);
+
+ case GTK_RESIZE_PARENT:
+ default:
+ g_assert_not_reached ();
+ break;
+ }
+ }
+}
+
static void
_gtk_container_queue_resize_internal (GtkContainer *container,
gboolean invalidate_only)
@@ -1690,39 +1731,7 @@ _gtk_container_queue_resize_internal (GtkContainer *container,
while (widget);
if (widget && !invalidate_only)
- {
- container = GTK_CONTAINER (widget);
-
- if (gtk_widget_get_visible (widget) &&
- (gtk_widget_is_toplevel (widget) ||
- gtk_widget_get_realized (widget)))
- {
- switch (container->priv->resize_mode)
- {
- case GTK_RESIZE_QUEUE:
- if (!_gtk_widget_get_resize_pending (widget))
- {
- _gtk_widget_set_resize_pending (widget, TRUE);
- if (container_resize_queue == NULL)
- gdk_threads_add_idle_full (GTK_PRIORITY_RESIZE,
- gtk_container_idle_sizer,
- NULL, NULL);
- container_resize_queue = g_slist_prepend (container_resize_queue, container);
- }
- break;
-
- case GTK_RESIZE_IMMEDIATE:
- _gtk_style_context_validate (gtk_widget_get_style_context (widget),
- g_get_monotonic_time (),
- 0);
- break;
-
- case GTK_RESIZE_PARENT:
- g_assert_not_reached ();
- break;
- }
- }
- }
+ _gtk_container_queue_resize_handler (GTK_CONTAINER (widget));
}
/**