diff -Nru unity-greeter-14.04.10/src/settings-daemon.vala unity-greeter-14.04.10/src/settings-daemon.vala --- unity-greeter-14.04.10/src/settings-daemon.vala 2014-04-07 21:36:56.000000000 -0700 +++ unity-greeter-14.04.10/src/settings-daemon.vala 2014-12-22 11:05:22.000000000 -0800 @@ -200,6 +200,23 @@ } } + private void _set_idle_hint (bool idle_hint) + { + try + { + string session_id = Environment.get_variable("XDG_SESSION_ID"); + string session_object = "/org/freedesktop/login1/session/%s".printf(session_id); + LogindSession session = Bus.get_proxy_sync (BusType.SYSTEM, + "org.freedesktop.login1", + session_object); + session.set_idle_hint (idle_hint); + } + catch (Error e) + { + warning ("Failed to set session idle hint: %s", e.message); + } + } + public void set_active (bool value) { if (_active == value) @@ -211,6 +228,7 @@ debug ("Screensaver disabled"); _set_active (value); + _set_idle_hint (value); active_changed (value); } @@ -232,3 +250,9 @@ public string session_name { get { return "ubuntu"; } } public uint32 inhibited_actions { get { return 0; } } } + +[DBus (name="org.freedesktop.login1.Session")] +interface LogindSession : Object +{ + public abstract void set_idle_hint (bool idle_hint) throws IOError; +}