summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKacper Kowalik <xarthisius@gentoo.org>2011-05-04 06:33:06 +0000
committerKacper Kowalik <xarthisius@gentoo.org>2011-05-04 06:33:06 +0000
commitc928862ddd523b164f4d4a406f9af30d92e54bd7 (patch)
tree8f8718d21561b472cf3f707b8eba8d34aee662ac /x11-misc/redshift/files
parentppc stable wrt #365177 (diff)
downloadhistorical-c928862ddd523b164f4d4a406f9af30d92e54bd7.tar.gz
historical-c928862ddd523b164f4d4a406f9af30d92e54bd7.tar.bz2
historical-c928862ddd523b164f4d4a406f9af30d92e54bd7.zip
Apply patch for >gnome-2.30 wrt bug 365481 by Anton Bolshakov <anton.bugs@gmail.com>. Drop old.
Package-Manager: portage-2.2.0_alpha29/cvs/Linux x86_64
Diffstat (limited to 'x11-misc/redshift/files')
-rw-r--r--x11-misc/redshift/files/1.6-bonoboiidfix.patch43
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);