console/gntblist.c

changeset 14912
176bce6dc803
parent 14910
a51aca2259d0
child 14945
4cd7dbf2933b
--- a/console/gntblist.c	Sun Oct 29 14:51:20 2006 +0000
+++ b/console/gntblist.c	Sun Oct 29 15:59:05 2006 +0000
@@ -643,11 +643,16 @@
 		return;
 
 	item = gnt_menuitem_new(action->label);
-	gnt_menuitem_set_callback(GNT_MENUITEM(item), context_menu_callback, action);
+	if (action->callback)
+		gnt_menuitem_set_callback(GNT_MENUITEM(item), context_menu_callback, action);
 	gnt_menu_add_item(menu, GNT_MENUITEM(item));
 
-	for (list = action->children; list; list = list->next)
-		gnt_append_menu_action(menu, list->data, action);
+	if (action->children) {
+		GntWidget *sub = gnt_menu_new(GNT_MENU_POPUP);
+		gnt_menuitem_set_submenu(item, GNT_MENU(sub));
+		for (list = action->children; list; list = list->next)
+			gnt_append_menu_action(GNT_MENU(sub), list->data, action);
+	}
 }
 
 static void

mercurial