File gnome-menus-x-suse-unimportant.patch of Package gnome-menus-legacy

? gnome-menus-x-suse-unimportant.patch
? libmenu/menu-verbose
Index: libmenu/desktop-entries.c
===================================================================
--- libmenu/desktop-entries.c.orig
+++ libmenu/desktop-entries.c
@@ -33,7 +33,8 @@ enum
   DESKTOP_ENTRY_NO_DISPLAY     = 1 << 0,
   DESKTOP_ENTRY_HIDDEN         = 1 << 1,
   DESKTOP_ENTRY_SHOW_IN_GNOME  = 1 << 2,
-  DESKTOP_ENTRY_TRYEXEC_FAILED = 1 << 3
+  DESKTOP_ENTRY_TRYEXEC_FAILED = 1 << 3,
+  DESKTOP_ENTRY_UNIMPORTANT    = 1 << 4
 };
 
 struct DesktopEntry
@@ -52,7 +53,7 @@ struct DesktopEntry
   gboolean terminal;
 
   guint type : 2;
-  guint flags : 4;
+  guint flags : 5;
   guint refcount : 24;
 };
 
@@ -77,6 +78,7 @@ get_flags_from_key_file (DesktopEntry *e
   gboolean   hidden;
   gboolean   show_in_gnome;
   gboolean   tryexec_failed;
+  gboolean   unimportant;
   char      *tryexec;
   guint      flags;
   int        i;
@@ -159,6 +161,17 @@ get_flags_from_key_file (DesktopEntry *e
       g_free (tryexec);
     }
 
+  error = NULL;
+  unimportant = g_key_file_get_boolean (key_file,
+					desktop_entry_group,
+					"X-SuSE-Unimportant",
+					&error);
+  if (error)
+    {
+      unimportant = FALSE;
+      g_error_free (error);
+    }
+
   flags = 0;
   if (no_display)
     flags |= DESKTOP_ENTRY_NO_DISPLAY;
@@ -168,6 +181,8 @@ get_flags_from_key_file (DesktopEntry *e
     flags |= DESKTOP_ENTRY_SHOW_IN_GNOME;
   if (tryexec_failed)
     flags |= DESKTOP_ENTRY_TRYEXEC_FAILED;
+  if (unimportant)
+    flags |= DESKTOP_ENTRY_UNIMPORTANT;
 
   return flags;
 }
@@ -301,7 +316,7 @@ desktop_entry_load (DesktopEntry *entry)
   
 #undef GET_LOCALE_STRING
 
-  menu_verbose ("Desktop entry \"%s\" (%s, %s, %s, %s, %s) flags: NoDisplay=%s, Hidden=%s, ShowInGNOME=%s, TryExecFailed=%s\n",
+  menu_verbose ("Desktop entry \"%s\" (%s, %s, %s, %s, %s) flags: NoDisplay=%s, Hidden=%s, ShowInGNOME=%s, TryExecFailed=%s, Unimportant=%s\n",
                 retval->basename,
                 retval->name,
                 retval->generic_name ? retval->generic_name : "(null)",
@@ -311,7 +326,8 @@ desktop_entry_load (DesktopEntry *entry)
                 retval->flags & DESKTOP_ENTRY_NO_DISPLAY     ? "(true)" : "(false)",
                 retval->flags & DESKTOP_ENTRY_HIDDEN         ? "(true)" : "(false)",
                 retval->flags & DESKTOP_ENTRY_SHOW_IN_GNOME  ? "(true)" : "(false)",
-                retval->flags & DESKTOP_ENTRY_TRYEXEC_FAILED ? "(true)" : "(false)");
+                retval->flags & DESKTOP_ENTRY_TRYEXEC_FAILED ? "(true)" : "(false)",
+                retval->flags & DESKTOP_ENTRY_UNIMPORTANT    ? "(true)" : "(false)");
 
  out:
   g_key_file_free (key_file);
@@ -551,7 +567,8 @@ desktop_entry_get_hidden (DesktopEntry *
 gboolean
 desktop_entry_get_no_display (DesktopEntry *entry)
 {
-  return (entry->flags & DESKTOP_ENTRY_NO_DISPLAY) != 0;
+  return ((entry->flags & DESKTOP_ENTRY_NO_DISPLAY) != 0) ||
+      ((entry->flags & DESKTOP_ENTRY_UNIMPORTANT) != 0);
 }
 
 gboolean
openSUSE Build Service is sponsored by