summaryrefslogtreecommitdiff
path: root/gtk/gtkuimanager.c
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2006-01-04 15:32:05 +0000
committerMatthias Clasen <matthiasc@src.gnome.org>2006-01-04 15:32:05 +0000
commitb43a41e77a780f1c4e613828efc7142a1bc123f2 (patch)
treee489f9aa3136e0cb32ef1e3a19ddae4be14ac5f4 /gtk/gtkuimanager.c
parentcfe00e57095831ccd8a290d2d7f7bbe6624c3d55 (diff)
downloadgtk+-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.c51
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 |