static void add_widget_to_closure (GtkWidget *widget, GtkSizeGroupMode mode, GSList **groups, GSList **widgets) { GSList *tmp_groups; *widgets = g_slist_prepend (*widgets, widget); mark_visited (widget); tmp_groups = get_size_groups (widget); while (tmp_groups) { GtkSizeGroup *tmp_group = tmp_groups->data; if ((tmp_group->mode == GTK_SIZE_GROUP_BOTH || tmp_group->mode == mode) && !is_visited (tmp_group)) add_group_to_closure (tmp_group, mode, groups, widgets); tmp_groups = tmp_groups->next; } }
static void add_widget_to_closure (GtkWidget *widget, GtkSizeGroupMode mode, GSList **groups, GSList **widgets) { GSList *tmp_groups; *widgets = g_slist_prepend (*widgets, widget); _gtk_widget_set_sizegroup_visited (widget, TRUE); tmp_groups = _gtk_widget_get_sizegroups (widget); while (tmp_groups) { GtkSizeGroup *tmp_group = tmp_groups->data; GtkSizeGroupPrivate *tmp_priv = tmp_group->priv; if ((tmp_priv->mode == GTK_SIZE_GROUP_BOTH || tmp_priv->mode == mode) && !tmp_group->priv->visited) add_group_to_closure (tmp_group, mode, groups, widgets); tmp_groups = tmp_groups->next; } }