diff options
author | Eric Koegel <eric.koegel@gmail.com> | 2016-06-28 15:46:16 +0300 |
---|---|---|
committer | Eric Koegel <eric.koegel@gmail.com> | 2016-06-28 15:47:32 +0300 |
commit | ac387875a5e0d4239848fa3560757fb7ef0c2338 (patch) | |
tree | 4fe90ae307f9158e6982de754dd3a22480625001 /xfce4-session-logout | |
parent | 6f654c94f4333aa689f88bd54985cdaa37c9cdd4 (diff) | |
download | xfce4-session-ac387875a5e0d4239848fa3560757fb7ef0c2338.tar.gz |
Add switch-user to the xfsm-logout program
Diffstat (limited to 'xfce4-session-logout')
-rw-r--r-- | xfce4-session-logout/main.c | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/xfce4-session-logout/main.c b/xfce4-session-logout/main.c index 2ed8a9e4..e94d015b 100644 --- a/xfce4-session-logout/main.c +++ b/xfce4-session-logout/main.c @@ -47,6 +47,7 @@ gboolean opt_halt = FALSE; gboolean opt_reboot = FALSE; gboolean opt_suspend = FALSE; gboolean opt_hibernate = FALSE; +gboolean opt_switch_user = FALSE; gboolean opt_fast = FALSE; gboolean opt_version = FALSE; @@ -57,7 +58,8 @@ enum XFSM_SHUTDOWN_HALT, XFSM_SHUTDOWN_REBOOT, XFSM_SHUTDOWN_SUSPEND, - XFSM_SHUTDOWN_HIBERNATE + XFSM_SHUTDOWN_HIBERNATE, + XFSM_SHUTDOWN_SWITCH_USER }; static GOptionEntry option_entries[] = @@ -82,6 +84,10 @@ static GOptionEntry option_entries[] = N_("Hibernate without displaying the logout dialog"), NULL }, + { "switch-user", 'u', G_OPTION_FLAG_IN_MAIN, G_OPTION_ARG_NONE, &opt_switch_user, + N_("Switch user without displaying the logout dialog"), + NULL + }, { "fast", 'f', G_OPTION_FLAG_IN_MAIN, G_OPTION_ARG_NONE, &opt_fast, N_("Log out quickly; don't save the session"), NULL @@ -194,6 +200,15 @@ main (int argc, char **argv) NULL, &err); } + else if (opt_switch_user) + { + result = g_dbus_proxy_call_sync (proxy, "SwitchUser", + g_variant_new("()"), + G_DBUS_CALL_FLAGS_NONE, + -1, + NULL, + &err); + } else { show_dialog = !opt_logout; @@ -225,6 +240,8 @@ main (int argc, char **argv) shutdown_type = XFSM_SHUTDOWN_SUSPEND; else if (opt_hibernate) shutdown_type = XFSM_SHUTDOWN_HIBERNATE; + else if (opt_switch_user) + shutdown_type = XFSM_SHUTDOWN_SWITCH_USER; else shutdown_type = XFSM_SHUTDOWN_ASK; |