ayatana-commits team mailing list archive
-
ayatana-commits team
-
Mailing list archive
-
Message #00850
[Merge] lp:~ted/indicator-session/screensaver-proxy-on-request into lp:indicator-session
Ted Gould has proposed merging lp:~ted/indicator-session/screensaver-proxy-on-request into lp:indicator-session.
Requested reviews:
Indicator Applet Developers (indicator-applet-developers)
Only building the proxy when we try to do something with the proxy.
--
https://code.launchpad.net/~ted/indicator-session/screensaver-proxy-on-request/+merge/18853
Your team ayatana-commits is subscribed to branch lp:indicator-session.
=== modified file 'src/lock-helper.c'
--- src/lock-helper.c 2010-02-05 00:59:30 +0000
+++ src/lock-helper.c 2010-02-08 17:00:30 +0000
@@ -35,6 +35,8 @@
static gdm_autologin_cb_t gdm_autologin_cb = NULL;
+void build_gss_proxy (void);
+
/* Checks to see if there is an error and reports
it. Not much else we can do. */
static void
@@ -56,6 +58,9 @@
{
g_return_if_fail(cookie != 0);
+ build_gss_proxy();
+ g_return_if_fail(gss_proxy != NULL);
+
dbus_g_proxy_begin_call(gss_proxy, "UnThrottle",
unthrottle_return, NULL,
NULL,
@@ -103,6 +108,9 @@
screensaver_unthrottle();
}
+ build_gss_proxy();
+ g_return_if_fail(gss_proxy != NULL);
+
cookie_call = dbus_g_proxy_begin_call(gss_proxy, "Throttle",
throttle_return, NULL,
NULL,
@@ -245,17 +253,19 @@
void
build_gss_proxy (void)
{
- DBusGConnection * session_bus = dbus_g_bus_get(DBUS_BUS_SESSION, NULL);
- g_return_if_fail(session_bus != NULL);
-
- gss_proxy = dbus_g_proxy_new_for_name(session_bus,
- "org.gnome.ScreenSaver",
- "/",
- "org.gnome.ScreenSaver");
- g_return_if_fail(gss_proxy != NULL);
-
- dbus_g_proxy_add_signal(gss_proxy, "ActiveChanged", G_TYPE_BOOLEAN, G_TYPE_INVALID);
- dbus_g_proxy_connect_signal(gss_proxy, "ActiveChanged", G_CALLBACK(gss_active_changed), NULL, NULL);
+ if (gss_proxy == NULL) {
+ DBusGConnection * session_bus = dbus_g_bus_get(DBUS_BUS_SESSION, NULL);
+ g_return_if_fail(session_bus != NULL);
+
+ gss_proxy = dbus_g_proxy_new_for_name(session_bus,
+ "org.gnome.ScreenSaver",
+ "/",
+ "org.gnome.ScreenSaver");
+ g_return_if_fail(gss_proxy != NULL);
+
+ dbus_g_proxy_add_signal(gss_proxy, "ActiveChanged", G_TYPE_BOOLEAN, G_TYPE_INVALID);
+ dbus_g_proxy_connect_signal(gss_proxy, "ActiveChanged", G_CALLBACK(gss_active_changed), NULL, NULL);
+ }
return;
}
@@ -286,6 +296,7 @@
return;
}
+ build_gss_proxy();
g_return_if_fail(gss_proxy != NULL);
dbus_g_proxy_call_no_reply(gss_proxy,
@@ -318,7 +329,6 @@
}
build_gdm_proxy();
- build_gss_proxy();
return FALSE;
}
Follow ups