diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/gs-listener-dbus.c | 7 | ||||
-rw-r--r-- | src/mate-screensaver-command.c | 10 |
2 files changed, 17 insertions, 0 deletions
diff --git a/src/gs-listener-dbus.c b/src/gs-listener-dbus.c index d398601..a37e3f9 100644 --- a/src/gs-listener-dbus.c +++ b/src/gs-listener-dbus.c @@ -1373,6 +1373,8 @@ do_introspect (DBusConnection *connection, " <interface name=\"org.mate.ScreenSaver\">\n" " <method name=\"Lock\">\n" " </method>\n" + " <method name=\"Unlock\">\n" + " </method>\n" " <method name=\"Cycle\">\n" " </method>\n" " <method name=\"SimulateUserActivity\">\n" @@ -1465,6 +1467,11 @@ listener_dbus_handle_session_message (DBusConnection *connection, g_signal_emit (listener, signals [LOCK], 0); return DBUS_HANDLER_RESULT_HANDLED; } + if (dbus_message_is_method_call (message, GS_LISTENER_SERVICE, "Unlock")) + { + gs_listener_set_active (listener, FALSE); + return DBUS_HANDLER_RESULT_HANDLED; + } if (dbus_message_is_method_call (message, GS_LISTENER_SERVICE, "Quit")) { g_signal_emit (listener, signals [QUIT], 0); diff --git a/src/mate-screensaver-command.c b/src/mate-screensaver-command.c index 11feb8b..60c6001 100644 --- a/src/mate-screensaver-command.c +++ b/src/mate-screensaver-command.c @@ -39,6 +39,7 @@ static gboolean do_quit = FALSE; static gboolean do_lock = FALSE; +static gboolean do_unlock = FALSE; static gboolean do_cycle = FALSE; static gboolean do_activate = FALSE; static gboolean do_deactivate = FALSE; @@ -71,6 +72,10 @@ static GOptionEntry entries [] = N_("Tells the running screensaver process to lock the screen immediately"), NULL }, { + "unlock", 'u', 0, G_OPTION_ARG_NONE, &do_unlock, + N_("Tells the running screensaver process to unlock the screen immediately"), NULL + }, + { "cycle", 'c', 0, G_OPTION_ARG_NONE, &do_cycle, N_("If the screensaver is active then switch to another graphics demo"), NULL }, @@ -423,6 +428,11 @@ do_command (DBusConnection *connection) reply = screensaver_send_message_void (connection, "Lock", FALSE); } + if (do_unlock) + { + reply = screensaver_send_message_void (connection, "Unlock", FALSE); + } + if (do_cycle) { reply = screensaver_send_message_void (connection, "Cycle", FALSE); |