diff --git a/ChangeLog b/ChangeLog index 7aef30b66f..e7fe8b1e31 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2006-01-04 Matthias Clasen + + * gtk/gtkuimanager.c (gtk_ui_manager_get_toplevels): Don't return + a list of NULLs. (#325723, Steve Chaplin) + 2006-01-03 Matthias Clasen * gtk/gtkdnd.c (gtk_drag_begin_internal): Make it compile. diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index 7aef30b66f..e7fe8b1e31 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,8 @@ +2006-01-04 Matthias Clasen + + * gtk/gtkuimanager.c (gtk_ui_manager_get_toplevels): Don't return + a list of NULLs. (#325723, Steve Chaplin) + 2006-01-03 Matthias Clasen * gtk/gtkdnd.c (gtk_drag_begin_internal): Make it compile. diff --git a/gtk/gtkuimanager.c b/gtk/gtkuimanager.c index 8cf0c1a7c8..867aa1d4e8 100644 --- a/gtk/gtkuimanager.c +++ b/gtk/gtkuimanager.c @@ -761,30 +761,36 @@ gtk_ui_manager_get_widget (GtkUIManager *self, return GTK_UI_MANAGER_GET_CLASS (self)->get_widget (self, path); } +typedef struct { + GtkUIManagerItemType types; + GSList *list; +} ToplevelData; + static void collect_toplevels (GNode *node, gpointer user_data) { - struct { - GtkUIManagerItemType types; - GSList *list; - } *data = user_data; + ToplevelData *data = user_data; - switch (NODE_INFO (node)->type) { - case NODE_TYPE_MENUBAR: - if (data->types & GTK_UI_MANAGER_MENUBAR) - data->list = g_slist_prepend (data->list, NODE_INFO (node)->proxy); - break; - case NODE_TYPE_TOOLBAR: - if (data->types & GTK_UI_MANAGER_TOOLBAR) - data->list = g_slist_prepend (data->list, NODE_INFO (node)->proxy); - break; - case NODE_TYPE_POPUP: - if (data->types & GTK_UI_MANAGER_POPUP) - data->list = g_slist_prepend (data->list, NODE_INFO (node)->proxy); - break; - default: ; - } + if (NODE_INFO (node)->proxy) + { + switch (NODE_INFO (node)->type) + { + case NODE_TYPE_MENUBAR: + if (data->types & GTK_UI_MANAGER_MENUBAR) + data->list = g_slist_prepend (data->list, NODE_INFO (node)->proxy); + break; + case NODE_TYPE_TOOLBAR: + if (data->types & GTK_UI_MANAGER_TOOLBAR) + data->list = g_slist_prepend (data->list, NODE_INFO (node)->proxy); + break; + case NODE_TYPE_POPUP: + if (data->types & GTK_UI_MANAGER_POPUP) + data->list = g_slist_prepend (data->list, NODE_INFO (node)->proxy); + break; + default: ; + } + } } /** @@ -805,10 +811,7 @@ GSList * gtk_ui_manager_get_toplevels (GtkUIManager *self, GtkUIManagerItemType types) { - struct { - GtkUIManagerItemType types; - GSList *list; - } data; + ToplevelData data; g_return_val_if_fail (GTK_IS_UI_MANAGER (self), NULL); g_return_val_if_fail ((~(GTK_UI_MANAGER_MENUBAR |