[gnome-shell] sessionMode: Add allowKeybindingsWhenModal property
- From: Florian MÃllner <fmuellner src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell] sessionMode: Add allowKeybindingsWhenModal property
- Date: Tue, 22 May 2012 17:46:50 +0000 (UTC)
commit de69c719fb29d63d287699cb8328ee866711badc
Author: Florian MÃllner <fmuellner gnome org>
Date: Thu May 17 15:55:35 2012 +0200
sessionMode: Add allowKeybindingsWhenModal property
Add a sessionMode.allowKeybindingsWhenModal property, which determines
whether keybindings should still be handled while a modal dialog is
up or not.
https://bugzilla.gnome.org/show_bug.cgi?id=676156
js/ui/main.js | 10 +++++-----
js/ui/sessionMode.js | 2 ++
2 files changed, 7 insertions(+), 5 deletions(-)
---
diff --git a/js/ui/main.js b/js/ui/main.js
index 1e2a89d..6634025 100644
--- a/js/ui/main.js
+++ b/js/ui/main.js
@@ -563,6 +563,11 @@ function _globalKeyPressHandler(actor, event) {
if (event.type() != Clutter.EventType.KEY_PRESS)
return false;
+ if (!sessionMode.allowKeybindingsWhenModal) {
+ if (modalCount > (overview.visible ? 1 : 0))
+ return false;
+ }
+
let symbol = event.get_key_symbol();
let keyCode = event.get_key_code();
let ignoredModifiers = global.display.get_ignored_modifier_mask();
@@ -571,11 +576,6 @@ function _globalKeyPressHandler(actor, event) {
// This relies on the fact that Clutter.ModifierType is the same as Gdk.ModifierType
let action = global.display.get_keybinding_action(keyCode, modifierState);
- // Other bindings are only available to the user session when the overview is up and
- // no modal dialog is present.
- if (sessionMode.sessionType == Shell.SessionType.USER && (!overview.visible || modalCount > 1))
- return false;
-
// This isn't a Meta.KeyBindingAction yet
if (symbol == Clutter.Super_L || symbol == Clutter.Super_R) {
overview.hide();
diff --git a/js/ui/sessionMode.js b/js/ui/sessionMode.js
index 737b574..c66e92f 100644
--- a/js/ui/sessionMode.js
+++ b/js/ui/sessionMode.js
@@ -13,6 +13,7 @@ const _modes = {
showCalendarEvents: false,
allowSettings: false,
allowExtensions: false,
+ allowKeybindingsWhenModal: true,
sessionType: Shell.SessionType.GDM },
'user': { hasOverview: true,
@@ -20,6 +21,7 @@ const _modes = {
showCalendarEvents: true,
allowSettings: true,
allowExtensions: true,
+ allowKeybindingsWhenModal: false,
sessionType: Shell.SessionType.USER }
};
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]