if (dbus->ss_proxy)
{
+ GVariant *active_var;
+ gboolean active;
+
g_signal_connect (dbus->ss_proxy, "g-signal",
G_CALLBACK (screensaver_signal_session), impl->application);
+
+ active_var = g_dbus_proxy_call_sync (dbus->ss_proxy,
+ "GetActive",
+ NULL,
+ G_DBUS_CALL_FLAGS_NONE,
+ G_MAXINT,
+ NULL,
+ &error);
+ if (!active_var)
+ {
+ g_debug ("Error calling GetActive on GNOME screensaver: %s",
+ error->message);
+ g_clear_error (&error);
+ }
+ else
+ {
+ g_variant_get (active_var, "(b)", &active);
+ g_variant_unref (active_var);
+ gtk_application_set_screensaver_active (dbus->impl.application, active);
+ }
}
g_debug ("Registering client '%s' '%s'", dbus->application_id, client_id);