]> git.pld-linux.org Git - packages/desktop-file-utils.git/commitdiff
- don't show submenu if it's empty
authorgrzegol <grzegol@pld-linux.org>
Wed, 21 Jul 2004 21:18:24 +0000 (21:18 +0000)
committercvs2git <feedback@pld-linux.org>
Sun, 24 Jun 2012 12:13:13 +0000 (12:13 +0000)
Changed files:
    desktop-file-utils-hide_empty_submenus.patch -> 1.1

desktop-file-utils-hide_empty_submenus.patch [new file with mode: 0644]

diff --git a/desktop-file-utils-hide_empty_submenus.patch b/desktop-file-utils-hide_empty_submenus.patch
new file mode 100644 (file)
index 0000000..a253852
--- /dev/null
@@ -0,0 +1,43 @@
+--- desktop-file-utils-0.6/src/menu-process.c.hide-empty-submenus      2004-03-05 13:23:23.139062728 -0500
++++ desktop-file-utils-0.6/src/menu-process.c  2004-03-05 15:27:01.639279272 -0500
+@@ -2041,6 +2041,30 @@
+     }
+ }
++static void remove_empty_submenus (TreeNode * node)
++{
++  GSList *subdir;
++
++  subdir = node->subdirs;
++  while (subdir != NULL)
++  {
++      TreeNode *subdir_node = subdir->data;
++      GSList *next = subdir->next;
++
++      remove_empty_submenus (subdir_node);
++
++      /* If after removing empty children of this submenu, the submenu
++       * itself is empty, remove it from the parent menu (which is 'node')
++       */
++      if (subdir_node->subdirs == NULL && subdir_node->entries == NULL)
++      {
++          node->subdirs = g_slist_remove_link (node->subdirs, subdir);
++          tree_node_free (subdir_node);
++      }
++      subdir = next;
++  }
++}
++
+ static void
+ build_tree (DesktopEntryTree *tree)
+ {
+@@ -2057,6 +2081,9 @@
+   if (tree->root)
+     process_only_unallocated (tree->root, allocated);
++  if (tree->root)
++    remove_empty_submenus (tree->root);
++
+   g_hash_table_destroy (allocated);
+   if (tree->root == NULL)
This page took 0.099001 seconds and 4 git commands to generate.