diff options
-rw-r--r-- | src/Makefile.am | 2 | ||||
-rw-r--r-- | src/session-service.c | 14 |
2 files changed, 14 insertions, 2 deletions
diff --git a/src/Makefile.am b/src/Makefile.am index cf18aaa..ab79f0f 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -59,7 +59,7 @@ indicator_users_service_LDADD = $(USERSSERVICE_LIBS) ################# indicator_session_service_SOURCES = session-service.c -indicator_session_service_CFLAGS = $(SESSIONSERVICE_CFLAGS) +indicator_session_service_CFLAGS = $(SESSIONSERVICE_CFLAGS) -DLIBEXECDIR=\"$(libexecdir)\" indicator_session_service_LDADD = $(SESSIONSERVICE_LIBS) ############### diff --git a/src/session-service.c b/src/session-service.c index 55e60df..b301baf 100644 --- a/src/session-service.c +++ b/src/session-service.c @@ -15,7 +15,19 @@ static GMainLoop * mainloop = NULL; static void show_dialog (DbusmenuMenuitem * mi, gchar * type) { - g_debug("Showing dialog '%s'", type); + gchar * helper = g_build_path(LIBEXECDIR, "gtk-logout-helper", NULL); + gchar * dialog_line = g_strdup_printf("%s --%s", helper, type); + g_free(helper); + + g_debug("Showing dialog '%s'", dialog_line); + + GError * error = NULL; + if (!g_spawn_command_line_async(dialog_line, &error)) { + g_warning("Unable to show dialog: %s", error->message); + g_error_free(error); + } + + g_free(dialog_line); return; } |