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