[gnome-shell] [AltTab] fix Alt-Shift-Tab again
- From: Dan Winship <danw src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell] [AltTab] fix Alt-Shift-Tab again
- Date: Mon, 30 Aug 2010 16:28:37 +0000 (UTC)
commit b9f9dd948aa2683061127ddf6848edf39f3707e2
Author: Dan Winship <danw gnome org>
Date: Fri Aug 27 15:44:31 2010 -0400
[AltTab] fix Alt-Shift-Tab again
In Clutter 1.2, clutter_event_get_keysym() ignored the state of the
Shift key. In 1.4, it does not, so we have to adjust our comparisons
accordingly.
https://bugzilla.gnome.org/show_bug.cgi?id=627782
js/ui/altTab.js | 22 ++++++++++++++++------
1 files changed, 16 insertions(+), 6 deletions(-)
---
diff --git a/js/ui/altTab.js b/js/ui/altTab.js
index f3b6b1e..0b30167 100644
--- a/js/ui/altTab.js
+++ b/js/ui/altTab.js
@@ -215,6 +215,9 @@ AltTabPopup.prototype = {
_keyPressEvent : function(actor, event) {
let keysym = event.get_key_symbol();
let shift = (Shell.get_event_state(event) & Clutter.ModifierType.SHIFT_MASK);
+ // X allows servers to represent Shift+Tab in two different ways
+ if (shift && keysym == Clutter.Tab)
+ keysym = Clutter.ISO_Left_Tab;
this._disableHover();
@@ -222,17 +225,22 @@ AltTabPopup.prototype = {
// keys aren't mapped correctly
if (keysym == Clutter.grave)
- this._select(this._currentApp, shift ? this._previousWindow() : this._nextWindow());
+ this._select(this._currentApp, this._nextWindow());
+ else if (keysym == Clutter.asciitilde)
+ this._select(this._currentApp, this._previousWindow());
else if (keysym == Clutter.Escape)
this.destroy();
else if (this._thumbnailsFocused) {
if (keysym == Clutter.Tab) {
- if (shift && (this._currentWindow == 0 || this._currentWindow == -1))
- this._select(this._previousApp());
- else if (!shift && this._currentWindow == this._appIcons[this._currentApp].cachedWindows.length - 1)
+ if (this._currentWindow == this._appIcons[this._currentApp].cachedWindows.length - 1)
this._select(this._nextApp());
else
- this._select(this._currentApp, shift ? this._previousWindow() : this._nextWindow());
+ this._select(this._currentApp, this._nextWindow());
+ } else if (keysym == Clutter.ISO_Left_Tab) {
+ if (this._currentWindow == 0 || this._currentWindow == -1)
+ this._select(this._previousApp());
+ else
+ this._select(this._currentApp, this._previousWindow());
} else if (keysym == Clutter.Left || keysym == Clutter.a)
this._select(this._currentApp, this._previousWindow());
else if (keysym == Clutter.Right || keysym == Clutter.d)
@@ -241,7 +249,9 @@ AltTabPopup.prototype = {
this._select(this._currentApp, null, true);
} else {
if (keysym == Clutter.Tab)
- this._select(shift ? this._previousApp() : this._nextApp());
+ this._select(this._nextApp());
+ else if (keysym == Clutter.ISO_Left_Tab)
+ this._select(this._previousApp());
else if (keysym == Clutter.Left || keysym == Clutter.a)
this._select(this._previousApp());
else if (keysym == Clutter.Right || keysym == Clutter.d)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]