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