diff -urN aa/desktop-file-utils-0.7/src/menu-entries.c desktop-file-utils-0.7/src/menu-entries.c --- aa/desktop-file-utils-0.7/src/menu-entries.c 2004-07-28 21:48:48.387936296 +0200 +++ desktop-file-utils-0.7/src/menu-entries.c 2004-07-28 22:03:14.458273592 +0200 @@ -1938,6 +1938,56 @@ /* End checking for NoDisplay */ + if (!show) + { + e = entry_new (ENTRY_DIRECTORY, basename, filename, show); + g_free (str); + return e; + } + + /* Check for OnlyShowIn */ + char *onlyshowin; + + show = TRUE; + + onlyshowin = find_value (str, "OnlyShowIn"); + + if (onlyshowin != NULL) + { + char **split; + int i; + + show = FALSE; + + split = string_list_from_desktop_value (onlyshowin); + i = 0; + while (split[i] != NULL) + { + if (strcmp (split[i], "GNOME") == 0) + { + show = TRUE; + break; + } + + ++i; + } + + if (!show) + menu_verbose ("Not showing \"%s\" due to OnlyShowIn=%s\n", + filename, onlyshowin); + + g_strfreev (split); + g_free (onlyshowin); + } + /* End checking for OnlyShowIn */ + + if (!show) + { + e = entry_new (ENTRY_DIRECTORY, basename, filename, show); + g_free (str); + return e; + } + e = entry_new (ENTRY_DIRECTORY, basename, filename, show); g_free (str);