[gnome-session] manager: honor no confirmation logout mode for shell
- From: Ray Strode <halfline src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-session] manager: honor no confirmation logout mode for shell
- Date: Fri, 18 Feb 2011 16:30:36 +0000 (UTC)
commit ff337d253a475a79337e0f610e4d6027095721f4
Author: Ray Strode <rstrode redhat com>
Date: Thu Feb 17 16:07:04 2011 -0500
manager: honor no confirmation logout mode for shell
We were previously ignoring the bit. This commit makes us
look at it and honor it.
Based on feedback from vuntz
https://bugzilla.gnome.org/show_bug.cgi?id=637188
gnome-session/gsm-manager.c | 32 ++++++++++++++++++++++++--------
1 files changed, 24 insertions(+), 8 deletions(-)
---
diff --git a/gnome-session/gsm-manager.c b/gnome-session/gsm-manager.c
index 363fbbb..ada35e4 100644
--- a/gnome-session/gsm-manager.c
+++ b/gnome-session/gsm-manager.c
@@ -1162,7 +1162,9 @@ end_session_or_show_fallback_dialog (GsmManager *manager)
static void
end_session_or_show_shell_dialog (GsmManager *manager)
{
+ gboolean logout_prompt;
GsmShellEndSessionDialogType type;
+ gboolean logout_inhibited;
switch (manager->priv->logout_type) {
case GSM_MANAGER_LOGOUT_LOGOUT:
@@ -1185,21 +1187,35 @@ end_session_or_show_shell_dialog (GsmManager *manager)
break;
}
- if (! gsm_manager_is_logout_inhibited (manager)) {
- gboolean logout_prompt;
+ logout_inhibited = gsm_manager_is_logout_inhibited (manager);
+ logout_prompt = g_settings_get_boolean (manager->priv->settings,
+ KEY_LOGOUT_PROMPT);
- logout_prompt = g_settings_get_boolean (manager->priv->settings,
- KEY_LOGOUT_PROMPT);
- if (logout_prompt) {
+ switch (manager->priv->logout_mode) {
+ case GSM_MANAGER_LOGOUT_MODE_NORMAL:
+ if (logout_inhibited || logout_prompt) {
show_shell_end_session_dialog (manager, type);
- return;
} else {
end_phase (manager);
}
- return;
+ break;
+
+ case GSM_MANAGER_LOGOUT_MODE_NO_CONFIRMATION:
+ if (logout_inhibited) {
+ show_shell_end_session_dialog (manager, type);
+ } else {
+ end_phase (manager);
+ }
+ break;
+
+ case GSM_MANAGER_LOGOUT_MODE_FORCE:
+ end_phase (manager);
+ break;
+ default:
+ g_assert_not_reached ();
+ break;
}
- show_shell_end_session_dialog (manager, type);
}
static void
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]