summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'gnome-base/gnome-menus/files/gnome-menus-3.13.3-multiple-desktop.patch')
-rw-r--r--gnome-base/gnome-menus/files/gnome-menus-3.13.3-multiple-desktop.patch171
1 files changed, 0 insertions, 171 deletions
diff --git a/gnome-base/gnome-menus/files/gnome-menus-3.13.3-multiple-desktop.patch b/gnome-base/gnome-menus/files/gnome-menus-3.13.3-multiple-desktop.patch
deleted file mode 100644
index 8ec7006fce5b..000000000000
--- a/gnome-base/gnome-menus/files/gnome-menus-3.13.3-multiple-desktop.patch
+++ /dev/null
@@ -1,171 +0,0 @@
-From b4546ab43c2c7ef6fb6cb7e5db83dc3975b56e8e Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Alberts=20Muktup=C4=81vels?= <alberts.muktupavels@gmail.com>
-Date: Mon, 27 Oct 2014 18:41:34 +0200
-Subject: desktop-entries: support multiple desktops in XDG_CURRENT_DESKTOP
-
-This is based on glib commit:
-5a5e16e93c4f11e635918ecdb41681f63fd05a39
----
- libmenu/desktop-entries.c | 110 ++++++++++++++++++++++------------------------
- 1 file changed, 52 insertions(+), 58 deletions(-)
-
-diff --git a/libmenu/desktop-entries.c b/libmenu/desktop-entries.c
-index 326f311..bd4f886 100644
---- a/libmenu/desktop-entries.c
-+++ b/libmenu/desktop-entries.c
-@@ -85,32 +85,27 @@ unix_basename_from_path (const char *path)
- return path;
- }
-
--static const char *
--get_current_desktop (void)
-+static const gchar * const *
-+get_current_desktops (void)
- {
-- static char *current_desktop = NULL;
-+ static gchar **result;
-
-- /* Support XDG_CURRENT_DESKTOP environment variable; this can be used
-- * to abuse gnome-menus in non-GNOME desktops. */
-- if (!current_desktop)
-+ if (g_once_init_enter (&result))
- {
-- const char *desktop;
-+ const gchar *desktops;
-+ gchar **tmp;
-
-- desktop = g_getenv ("XDG_CURRENT_DESKTOP");
-+ desktops = g_getenv ("XDG_CURRENT_DESKTOP");
-
-- /* Note: if XDG_CURRENT_DESKTOP is set but empty, do as if it
-- * was not set */
-- if (!desktop || desktop[0] == '\0')
-- current_desktop = g_strdup ("GNOME");
-- else
-- current_desktop = g_strdup (desktop);
-- }
-+ if (desktops)
-+ desktops = "";
-
-- /* Using "*" means skipping desktop-related checks */
-- if (g_strcmp0 (current_desktop, "*") == 0)
-- return NULL;
-+ tmp = g_strsplit (desktops, ":", 0);
-+
-+ g_once_init_leave (&result, tmp);
-+ }
-
-- return current_desktop;
-+ return (const gchar **) result;
- }
-
- static GIcon *
-@@ -151,52 +146,58 @@ key_file_get_icon (GKeyFile *key_file)
- static gboolean
- key_file_get_show_in (GKeyFile *key_file)
- {
-- const gchar *current_desktop;
-- gchar **strv;
-+ const gchar * const *current_desktops;
-+ gchar **only_show_in;
-+ gchar **not_show_in;
- gboolean show_in = TRUE;
-- int i;
--
-- current_desktop = get_current_desktop ();
-- if (!current_desktop)
-- return TRUE;
--
-- strv = g_key_file_get_string_list (key_file,
-- DESKTOP_ENTRY_GROUP,
-- "OnlyShowIn",
-- NULL,
-- NULL);
-- if (strv)
-+ gint i;
-+
-+ current_desktops = get_current_desktops ();
-+ only_show_in = g_key_file_get_string_list (key_file,
-+ DESKTOP_ENTRY_GROUP,
-+ "OnlyShowIn",
-+ NULL,
-+ NULL);
-+ not_show_in = g_key_file_get_string_list (key_file,
-+ DESKTOP_ENTRY_GROUP,
-+ "NotShowIn",
-+ NULL,
-+ NULL);
-+
-+ for (i = 0; current_desktops[i]; i++)
- {
-- show_in = FALSE;
-- for (i = 0; strv[i]; i++)
-+ gint j;
-+
-+ if (only_show_in)
- {
-- if (!strcmp (strv[i], current_desktop))
-+ show_in = FALSE;
-+ for (j = 0; only_show_in[j]; j++)
- {
-- show_in = TRUE;
-- break;
-+ if (g_str_equal (only_show_in[j], current_desktops[i]))
-+ {
-+ show_in = TRUE;
-+ goto out;
-+ }
- }
- }
-- }
-- else
-- {
-- strv = g_key_file_get_string_list (key_file,
-- DESKTOP_ENTRY_GROUP,
-- "NotShowIn",
-- NULL,
-- NULL);
-- if (strv)
-+
-+ if (not_show_in)
- {
- show_in = TRUE;
-- for (i = 0; strv[i]; i++)
-+ for (j = 0; not_show_in[j]; j++)
- {
-- if (!strcmp (strv[i], current_desktop))
-+ if (g_str_equal (not_show_in[j], current_desktops[i]))
- {
- show_in = FALSE;
-+ goto out;
- }
- }
- }
- }
-- g_strfreev (strv);
-+
-+out:
-+ g_strfreev (only_show_in);
-+ g_strfreev (not_show_in);
-
- return show_in;
- }
-@@ -579,14 +580,7 @@ gboolean
- desktop_entry_get_show_in (DesktopEntry *entry)
- {
- if (entry->type == DESKTOP_ENTRY_DESKTOP)
-- {
-- const char *current_desktop = get_current_desktop ();
--
-- if (current_desktop == NULL)
-- return TRUE;
-- else
-- return g_desktop_app_info_get_show_in (((DesktopEntryDesktop*)entry)->appinfo, current_desktop);
-- }
-+ return g_desktop_app_info_get_show_in (((DesktopEntryDesktop*)entry)->appinfo, NULL);
- return ((DesktopEntryDirectory*)entry)->showin;
- }
-
---
-cgit v0.11.2
-