gentoo-full-overlay/x11-misc/redshift/files/1.6-bonoboiidfix.patch

43 lines
1.5 KiB
Diff

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);