Sophie

Sophie

distrib > * > 2008.0 > x86_64 > by-pkgid > ea204e5222f7b3c863951e7264ae540d > files > 3

gnome-menus-2.20.0-3mdv2008.0.src.rpm

--- gnome-menus-2.19.92/libmenu/menu-util.c.separator	2007-09-17 12:27:50.000000000 +0200
+++ gnome-menus-2.19.92/libmenu/menu-util.c	2007-09-17 12:28:19.000000000 +0200
@@ -458,7 +458,7 @@ append_to_string (MenuLayoutNode *node,
       break;
 
     case MENU_LAYOUT_NODE_SEPARATOR:
-      append_simple (node, depth, "Name", str);
+      append_simple (node, depth, "Separator", str);
       break;
 
     case MENU_LAYOUT_NODE_MERGE:
--- gnome-menus-2.19.92/libmenu/gmenu-tree.c.separator	2007-09-04 19:34:43.000000000 +0200
+++ gnome-menus-2.19.92/libmenu/gmenu-tree.c	2007-09-17 15:13:35.000000000 +0200
@@ -3883,9 +3883,15 @@ process_layout_info (GMenuTree          
 	      break;
 
 	    case MENU_LAYOUT_NODE_SEPARATOR:
-	      menu_verbose ("Adding a separator in '%s'\n", directory->name);
-	      directory->contents = g_slist_append (directory->contents,
+	      /* don't add separator if not empty */
+	      if (directory->contents != NULL) {
+	      	menu_verbose ("Adding a separator in '%s'\n", directory->name);
+	      	directory->contents = g_slist_append (directory->contents,
 						    gmenu_tree_separator_new (directory));
+	      }
+	      else {
+	      	menu_verbose ("Skipping a separator in '%s', empty menu\n", directory->name);
+	      }
 	      break;
 
 	    case MENU_LAYOUT_NODE_MERGE:
@@ -3926,6 +3932,18 @@ process_layout_info (GMenuTree          
 
 	  tmp = tmp->next;
 	}
+
+  	/* make sure last entry is not a separator */
+	if (directory->contents != NULL) {
+	  tmp = g_slist_last (directory->contents);
+
+      	  if (tmp && gmenu_tree_item_get_type (tmp->data) == GMENU_TREE_ITEM_SEPARATOR) {
+	      	menu_verbose ("Remove separator in '%s', it is the last item of this menu\n", directory->name);
+		gmenu_tree_item_unref_and_unset_parent (tmp->data);
+		directory->contents = g_slist_delete_link (directory->contents,
+					tmp);
+	  }
+        }
     }
 
   g_slist_foreach (directory->subdirs,