diff options
Diffstat (limited to 'x11-misc/redshift/files/1.6-bonoboiidfix.patch')
-rw-r--r-- | x11-misc/redshift/files/1.6-bonoboiidfix.patch | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/x11-misc/redshift/files/1.6-bonoboiidfix.patch b/x11-misc/redshift/files/1.6-bonoboiidfix.patch new file mode 100644 index 000000000000..b4f6c4de2749 --- /dev/null +++ b/x11-misc/redshift/files/1.6-bonoboiidfix.patch @@ -0,0 +1,43 @@ +Description: Handle newer versions of gnome-panel gconf schema. + In newer versions of gnome-panel (>2.30), the gconf identifier + name for bonobo_iid was renamed to applet_iid, this caused + redshift to be unable to locate the Clock Applet. This patch + attempts to use the legacy behaviour, and on failure to + retrieve the value uses the newer identifer. +Author: Miloš Komarčević <kmilos@gmail.com> +Bug: https://launchpad.net/bugs/706353 +Bug-Ubuntu: https://launchpad.net/bugs/706353 +Bug-Fedora: https://bugzilla.redhat.com/661145 +Bug-Gentoo: https://bugs.gentoo.org/365481 + +--- a/src/location-gnome-clock.c ++++ b/src/location-gnome-clock.c +@@ -104,11 +104,28 @@ + char *bonobo_iid = gconf_client_get_string(client, key, + &error); + ++ /* Try both gnome-panel 2.30.x and earlier bonobo_iid key and ++ newer applet_iid. */ + if (!error && bonobo_iid != NULL && + !strcmp(bonobo_iid, "OAFIID:GNOME_ClockApplet")) { + clock_applet_count += 1; + current_city = find_current_city(client, id); + } ++ else { ++ g_free(key); ++ key = g_strdup_printf("/apps/panel/applets/%s" ++ "/applet_iid", id); ++ char *applet_iid = gconf_client_get_string(client, key, ++ &error); ++ ++ if (!error && applet_iid != NULL && ++ !strcmp(applet_iid, "ClockAppletFactory::ClockApplet")) { ++ clock_applet_count += 1; ++ current_city = find_current_city(client, id); ++ } ++ ++ g_free(applet_iid); ++ } + + g_free(bonobo_iid); + g_free(key); |