diff options
author | Mike Gabriel <[email protected]> | 2019-01-20 01:10:51 +0100 |
---|---|---|
committer | raveit65 <[email protected]> | 2019-01-25 12:56:40 +0100 |
commit | 11fedfe00a34bc986efede88e1f2d2e8000881ab (patch) | |
tree | 8ab63cd71fbabf93f1eda24859e4a4d1bd0ba443 | |
parent | 84a14f04352313e59ffc8849bdae5fcfd5c7c682 (diff) | |
download | mate-screensaver-11fedfe00a34bc986efede88e1f2d2e8000881ab.tar.bz2 mate-screensaver-11fedfe00a34bc986efede88e1f2d2e8000881ab.tar.xz |
mate-screensaver-command: Support unlocking (--unlock) the screensaver via CLI.
-rw-r--r-- | data/mate-screensaver-command.1 | 3 | ||||
-rw-r--r-- | doc/dbus-interface.xml | 9 | ||||
-rw-r--r-- | src/gs-listener-dbus.c | 7 | ||||
-rw-r--r-- | src/mate-screensaver-command.c | 10 |
4 files changed, 29 insertions, 0 deletions
diff --git a/data/mate-screensaver-command.1 b/data/mate-screensaver-command.1 index f02c735..6aa60a5 100644 --- a/data/mate-screensaver-command.1 +++ b/data/mate-screensaver-command.1 @@ -35,6 +35,9 @@ Query the length of time the screensaver has been active .B \-l, \-\-lock Tells the running screensaver process to lock the screen immediately .TP +.B \-u, \-\-unlock +Tells the running screensaver process to unlock the screen immediately +.TP .B \-c, \-\-cycle If the screensaver is active then switch to another graphics demo .TP diff --git a/doc/dbus-interface.xml b/doc/dbus-interface.xml index d245bf1..207d849 100644 --- a/doc/dbus-interface.xml +++ b/doc/dbus-interface.xml @@ -52,6 +52,15 @@ </para> </sect2> + <sect2 id="gs-method-Unlock"> + <title> + <literal>Unlock</literal> + </title> + <para> + Request that the screen be unlocked. + </para> + </sect2> + <sect2 id="gs-method-Cycle"> <title> <literal>Cycle</literal> 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); |