summaryrefslogtreecommitdiff
path: root/xfce4-session-logout
diff options
context:
space:
mode:
authorEric Koegel <eric.koegel@gmail.com>2016-06-28 15:46:16 +0300
committerEric Koegel <eric.koegel@gmail.com>2016-06-28 15:47:32 +0300
commitac387875a5e0d4239848fa3560757fb7ef0c2338 (patch)
tree4fe90ae307f9158e6982de754dd3a22480625001 /xfce4-session-logout
parent6f654c94f4333aa689f88bd54985cdaa37c9cdd4 (diff)
downloadxfce4-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.c19
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;