summaryrefslogtreecommitdiff
path: root/openbox/session.c
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2008-03-02 02:50:19 -0500
committerDana Jansens <danakj@orodu.net>2008-03-02 03:46:22 -0500
commit4d098217301086d5ab142d6c4184f01d18c8b329 (patch)
tree4bbe63dc780f2115cbdcbbccb57e9b543e5806cd /openbox/session.c
parentb20ef1556a582bdf91578b17344feb0048ca208b (diff)
add a SessionLogout action
Diffstat (limited to 'openbox/session.c')
-rw-r--r--openbox/session.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/openbox/session.c b/openbox/session.c
index 0f74ec28..4483c051 100644
--- a/openbox/session.c
+++ b/openbox/session.c
@@ -33,6 +33,7 @@ GSList *session_desktop_names = NULL;
void session_startup(gint argc, gchar **argv) {}
void session_shutdown(gboolean permanent) {}
GList* session_state_find(struct _ObClient *c) { return NULL; }
+void session_request_logout(gboolean silent) {}
#else
#include "debug.h"
@@ -804,4 +805,20 @@ static void session_load_file(const gchar *path)
xmlFreeDoc(doc);
}
+void session_request_logout(gboolean silent)
+{
+ if (sm_conn) {
+ SmcRequestSaveYourself(sm_conn,
+ SmSaveBoth,
+ TRUE, /* logout */
+ (silent ?
+ SmInteractStyleNone : SmInteractStyleAny),
+ TRUE, /* if false, with GSM, it shows the old
+ logout prompt */
+ TRUE); /* global */
+ }
+ else
+ g_message(_("Not connected to a session manager"));
+}
+
#endif