diff options
author | Matthias Clasen <mclasen@redhat.com> | 2006-01-04 15:32:05 +0000 |
---|---|---|
committer | Matthias Clasen <matthiasc@src.gnome.org> | 2006-01-04 15:32:05 +0000 |
commit | b43a41e77a780f1c4e613828efc7142a1bc123f2 (patch) | |
tree | e489f9aa3136e0cb32ef1e3a19ddae4be14ac5f4 /gtk/gtkuimanager.c | |
parent | cfe00e57095831ccd8a290d2d7f7bbe6624c3d55 (diff) | |
download | gtk+-b43a41e77a780f1c4e613828efc7142a1bc123f2.tar.gz |
Don't return a list of NULLs. (#325723, Steve Chaplin)
2006-01-04 Matthias Clasen <mclasen@redhat.com>
* gtk/gtkuimanager.c (gtk_ui_manager_get_toplevels): Don't return
a list of NULLs. (#325723, Steve Chaplin)
Diffstat (limited to 'gtk/gtkuimanager.c')
-rw-r--r-- | gtk/gtkuimanager.c | 51 |
1 files changed, 27 insertions, 24 deletions
diff --git a/gtk/gtkuimanager.c b/gtk/gtkuimanager.c index 4a7b1715d6..3c2732025e 100644 --- a/gtk/gtkuimanager.c +++ b/gtk/gtkuimanager.c @@ -755,30 +755,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; - - 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: ; - } + ToplevelData *data = user_data; + + 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: ; + } + } } /** @@ -799,10 +805,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 | |