ayatana-commits team mailing list archive
-
ayatana-commits team
-
Mailing list archive
-
Message #03775
[Merge] lp:~mterry/indicator-session/dont-start-screensaver-in-greeter into lp:indicator-session
Michael Terry has proposed merging lp:~mterry/indicator-session/dont-start-screensaver-in-greeter into lp:indicator-session.
Requested reviews:
Indicator Applet Developers (indicator-applet-developers)
Related bugs:
Bug #812804 in Session Menu: "lightdm asks for password when resuming from suspend even when no one is logged in"
https://bugs.launchpad.net/indicator-session/+bug/812804
For more details, see:
https://code.launchpad.net/~mterry/indicator-session/dont-start-screensaver-in-greeter/+merge/71944
Prevents starting gnome-screensaver when running in the greeter.
While I was there, I also updated the check for screensaver settings to use GSettings instead of GConf.
I notice that gconf-helper still refers to gconf for some gnome-settings-daemon stuff. That should probably be moved to gsettings too before 11.10.
--
https://code.launchpad.net/~mterry/indicator-session/dont-start-screensaver-in-greeter/+merge/71944
Your team ayatana-commits is subscribed to branch lp:indicator-session.
=== modified file 'src/lock-helper.c'
--- src/lock-helper.c 2010-08-06 15:57:11 +0000
+++ src/lock-helper.c 2011-08-17 20:25:25 +0000
@@ -20,12 +20,12 @@
*/
#include <glib/gi18n.h>
-#include <gconf/gconf-client.h>
+#include <gio/gio.h>
#include <dbus/dbus-glib.h>
#include "lock-helper.h"
-#define GCONF_DIR "/apps/gnome-screensaver"
-#define GCONF_KEY GCONF_DIR "/lock_enabled"
+#define SCREENSAVER_SCHEMA "org.gnome.desktop.screensaver"
+#define SCREENSAVER_LOCK_ENABLED_KEY "lock-enabled"
static DBusGProxy * gss_proxy = NULL;
static GMainLoop * gss_mainloop = NULL;
@@ -34,7 +34,7 @@
static gboolean is_guest = FALSE;
-static GConfClient * gconf_client = NULL;
+static GSettings * settings = NULL;
void build_gss_proxy (void);
@@ -131,11 +131,11 @@
return FALSE;
}
- if (gconf_client == NULL) {
- gconf_client = gconf_client_get_default();
+ if (settings == NULL) {
+ settings = g_settings_new (SCREENSAVER_SCHEMA);
}
- return gconf_client_get_bool (gconf_client, GCONF_KEY, NULL);
+ return g_settings_get_boolean (settings, SCREENSAVER_LOCK_ENABLED_KEY);
}
/* When the screensave go active, if we've got a mainloop
@@ -150,11 +150,22 @@
return;
}
+static gboolean
+get_greeter_mode (void)
+{
+ const gchar *var;
+ var = g_getenv("INDICATOR_GREETER_MODE");
+ return (g_strcmp0(var, "1") == 0);
+}
+
/* Build the gss proxy and set up it's signals */
void
build_gss_proxy (void)
{
if (gss_proxy == NULL) {
+ if (get_greeter_mode ())
+ return; /* Don't start/lock the screensaver from the login screen */
+
DBusGConnection * session_bus = dbus_g_bus_get(DBUS_BUS_SESSION, NULL);
g_return_if_fail(session_bus != NULL);
Follow ups