widget: Move resize function into gtkwidget.c

There's no sizegroup specific code left in it, but lots of
widget-specifics.
This commit is contained in:
Benjamin Otte 2015-09-28 21:54:23 +02:00
parent 4fa74e68e9
commit ab7e901cfd
3 changed files with 49 additions and 48 deletions

View File

@ -25,7 +25,6 @@ G_BEGIN_DECLS
GHashTable * _gtk_size_group_get_widget_peers (GtkWidget *for_widget, GHashTable * _gtk_size_group_get_widget_peers (GtkWidget *for_widget,
GtkOrientation orientation); GtkOrientation orientation);
void _gtk_size_group_queue_resize (GtkWidget *widget);
G_END_DECLS G_END_DECLS

View File

@ -519,51 +519,6 @@ gtk_size_group_get_widgets (GtkSizeGroup *size_group)
return size_group->priv->widgets; return size_group->priv->widgets;
} }
/**
* _gtk_size_group_queue_resize:
* @widget: a #GtkWidget
*
* Queue a resize on a widget, and on all other widgets grouped with this widget.
**/
void
_gtk_size_group_queue_resize (GtkWidget *widget)
{
GtkWidget *parent;
GSList *groups, *l;
parent = widget;
do
{
if (gtk_widget_get_resize_needed (parent))
return;
gtk_widget_queue_resize_on_widget (parent);
groups = _gtk_widget_get_sizegroups (parent);
for (l = groups; l; l = l->next)
{
if (((GtkSizeGroup *) (l->data))->priv->ignore_hidden && !gtk_widget_is_visible (widget))
continue;
queue_resize_on_group (l->data);
}
G_GNUC_BEGIN_IGNORE_DEPRECATIONS;
if (GTK_IS_RESIZE_CONTAINER (parent))
{
gtk_container_queue_resize_handler (GTK_CONTAINER (parent));
break;
}
G_GNUC_END_IGNORE_DEPRECATIONS;
parent = _gtk_widget_get_parent (parent);
}
while (parent);
}
typedef struct { typedef struct {
gchar *name; gchar *name;
gint line; gint line;

View File

@ -5598,6 +5598,53 @@ gtk_widget_queue_allocate (GtkWidget *widget)
gtk_widget_queue_resize (widget); gtk_widget_queue_resize (widget);
} }
/**
* gtk_widget_queue_resize_internal:
* @widget: a #GtkWidget
*
* Queue a resize on a widget, and on all other widgets grouped with this widget.
**/
void
gtk_widget_queue_resize_internal (GtkWidget *widget)
{
GtkWidget *parent;
GSList *groups, *l, *widgets;
parent = widget;
do
{
if (gtk_widget_get_resize_needed (parent))
return;
gtk_widget_queue_resize_on_widget (parent);
groups = _gtk_widget_get_sizegroups (parent);
for (l = groups; l; l = l->next)
{
if (gtk_size_group_get_ignore_hidden (l->data) && !gtk_widget_is_visible (widget))
continue;
for (widgets = gtk_size_group_get_widgets (l->data); widgets; widgets = widgets->next)
{
gtk_widget_queue_resize_internal (widgets->data);
}
}
G_GNUC_BEGIN_IGNORE_DEPRECATIONS;
if (GTK_IS_RESIZE_CONTAINER (parent))
{
gtk_container_queue_resize_handler (GTK_CONTAINER (parent));
break;
}
G_GNUC_END_IGNORE_DEPRECATIONS;
parent = _gtk_widget_get_parent (parent);
}
while (parent);
}
/** /**
* gtk_widget_queue_resize: * gtk_widget_queue_resize:
* @widget: a #GtkWidget * @widget: a #GtkWidget
@ -5621,7 +5668,7 @@ gtk_widget_queue_resize (GtkWidget *widget)
if (_gtk_widget_get_realized (widget)) if (_gtk_widget_get_realized (widget))
gtk_widget_queue_draw (widget); gtk_widget_queue_draw (widget);
_gtk_size_group_queue_resize (widget); gtk_widget_queue_resize_internal (widget);
} }
/** /**
@ -5638,7 +5685,7 @@ gtk_widget_queue_resize_no_redraw (GtkWidget *widget)
{ {
g_return_if_fail (GTK_IS_WIDGET (widget)); g_return_if_fail (GTK_IS_WIDGET (widget));
_gtk_size_group_queue_resize (widget); gtk_widget_queue_resize_internal (widget);
} }
/** /**