43 lines
1.5 KiB
Diff
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);
|