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)
This commit is contained in:
Matthias Clasen
2006-01-04 15:35:08 +00:00
committed by Matthias Clasen
parent aa79f10539
commit 01c32828f0
3 changed files with 36 additions and 23 deletions

View File

@@ -1,3 +1,8 @@
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)
2006-01-03 Matthias Clasen <mclasen@redhat.com>
* gtk/gtkdnd.c (gtk_drag_begin_internal): Make it compile.

View File

@@ -1,3 +1,8 @@
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)
2006-01-03 Matthias Clasen <mclasen@redhat.com>
* gtk/gtkdnd.c (gtk_drag_begin_internal): Make it compile.

View File

@@ -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 |