[gnome-shell] WorkspaceSwitcher: simplify code for handling keybindings
- From: Giovanni Campagna <gcampagna src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell] WorkspaceSwitcher: simplify code for handling keybindings
- Date: Wed, 27 Jun 2012 18:08:40 +0000 (UTC)
commit de72065a4af0abe371d0f9005f43a74a11a5bbbc
Author: Giovanni Campagna <gcampagna src gnome org>
Date: Sat Apr 14 14:40:30 2012 +0200
WorkspaceSwitcher: simplify code for handling keybindings
Most of code implementing workspace switches was repeated with
minor differences on each direction. Instead, consolidate it
and use the new meta_workspace_get_neighbor.
https://bugzilla.gnome.org/show_bug.cgi?id=674104
js/ui/windowManager.js | 73 ++++++--------------------------------
js/ui/workspaceSwitcherPopup.js | 10 ++---
js/ui/workspacesView.js | 4 +-
3 files changed, 18 insertions(+), 69 deletions(-)
---
diff --git a/js/ui/windowManager.js b/js/ui/windowManager.js
index c6b17ad..4292537 100644
--- a/js/ui/windowManager.js
+++ b/js/ui/windowManager.js
@@ -564,72 +564,23 @@ const WindowManager = new Lang.Class({
this._workspaceSwitcherPopup = new WorkspaceSwitcherPopup.WorkspaceSwitcherPopup();
if (binding.get_name() == 'switch-to-workspace-up')
- this.actionMoveWorkspaceUp();
+ this.actionMoveWorkspace(Meta.MotionDirection.UP);
else if (binding.get_name() == 'switch-to-workspace-down')
- this.actionMoveWorkspaceDown();
- // left/right would effectively act as synonyms for up/down if we enabled them;
- // but that could be considered confusing.
- // else if (binding.get_name() == 'switch-to-workspace-left')
- // this.actionMoveWorkspaceLeft();
- // else if (binding.get_name() == 'switch-to-workspace-right')
- // this.actionMoveWorkspaceRight();
- },
-
- actionMoveWorkspaceLeft: function() {
- let rtl = (Clutter.get_default_text_direction() == Clutter.TextDirection.RTL);
- let activeWorkspaceIndex = global.screen.get_active_workspace_index();
- let indexToActivate = activeWorkspaceIndex;
- if (rtl && activeWorkspaceIndex < global.screen.n_workspaces - 1)
- indexToActivate++;
- else if (!rtl && activeWorkspaceIndex > 0)
- indexToActivate--;
-
- if (indexToActivate != activeWorkspaceIndex)
- global.screen.get_workspace_by_index(indexToActivate).activate(global.get_current_time());
-
- if (!Main.overview.visible)
- this._workspaceSwitcherPopup.display(WorkspaceSwitcherPopup.UP, indexToActivate);
+ this.actionMoveWorkspace(Meta.MotionDirection.DOWN);
+ else if (binding.get_name() == 'switch-to-workspace-left')
+ this.actionMoveWorkspace(Meta.MotionDirection.LEFT);
+ else if (binding.get_name() == 'switch-to-workspace-right')
+ this.actionMoveWorkspace(Meta.MotionDirection.RIGHT);
},
- actionMoveWorkspaceRight: function() {
- let rtl = (Clutter.get_default_text_direction() == Clutter.TextDirection.RTL);
- let activeWorkspaceIndex = global.screen.get_active_workspace_index();
- let indexToActivate = activeWorkspaceIndex;
- if (rtl && activeWorkspaceIndex > 0)
- indexToActivate--;
- else if (!rtl && activeWorkspaceIndex < global.screen.n_workspaces - 1)
- indexToActivate++;
+ actionMoveWorkspace: function(direction) {
+ let activeWorkspace = global.screen.get_active_workspace();
+ let toActivate = activeWorkspace.get_neighbor(direction);
- if (indexToActivate != activeWorkspaceIndex)
- global.screen.get_workspace_by_index(indexToActivate).activate(global.get_current_time());
+ if (toActivate && activeWorkspace != toActivate)
+ toActivate.activate(global.get_current_time());
if (!Main.overview.visible)
- this._workspaceSwitcherPopup.display(WorkspaceSwitcherPopup.DOWN, indexToActivate);
+ this._workspaceSwitcherPopup.display(direction, toActivate.index());
},
-
- actionMoveWorkspaceUp: function() {
- let activeWorkspaceIndex = global.screen.get_active_workspace_index();
- let indexToActivate = activeWorkspaceIndex;
- if (activeWorkspaceIndex > 0)
- indexToActivate--;
-
- if (indexToActivate != activeWorkspaceIndex)
- global.screen.get_workspace_by_index(indexToActivate).activate(global.get_current_time());
-
- if (!Main.overview.visible)
- this._workspaceSwitcherPopup.display(WorkspaceSwitcherPopup.UP, indexToActivate);
- },
-
- actionMoveWorkspaceDown: function() {
- let activeWorkspaceIndex = global.screen.get_active_workspace_index();
- let indexToActivate = activeWorkspaceIndex;
- if (activeWorkspaceIndex < global.screen.n_workspaces - 1)
- indexToActivate++;
-
- if (indexToActivate != activeWorkspaceIndex)
- global.screen.get_workspace_by_index(indexToActivate).activate(global.get_current_time());
-
- if (!Main.overview.visible)
- this._workspaceSwitcherPopup.display(WorkspaceSwitcherPopup.DOWN, indexToActivate);
- }
});
diff --git a/js/ui/workspaceSwitcherPopup.js b/js/ui/workspaceSwitcherPopup.js
index 51d2c28..1202d5f 100644
--- a/js/ui/workspaceSwitcherPopup.js
+++ b/js/ui/workspaceSwitcherPopup.js
@@ -3,18 +3,16 @@
const Clutter = imports.gi.Clutter;
const Lang = imports.lang;
const Mainloop = imports.mainloop;
+const Meta = imports.gi.Meta;
const Shell = imports.gi.Shell;
const St = imports.gi.St;
-const Main = imports.ui.main;
+const Main = imports.ui.main;
const Tweener = imports.ui.tweener;
const ANIMATION_TIME = 0.1;
const DISPLAY_TIMEOUT = 600;
-const UP = -1;
-const DOWN = 1;
-
const WorkspaceSwitcherPopup = new Lang.Class({
Name: 'WorkspaceSwitcherPopup',
@@ -110,9 +108,9 @@ const WorkspaceSwitcherPopup = new Lang.Class({
for (let i = 0; i < global.screen.n_workspaces; i++) {
let indicator = null;
- if (i == activeWorkspaceIndex && direction == UP)
+ if (i == activeWorkspaceIndex && direction == Meta.MotionDirection.UP)
indicator = new St.Bin({ style_class: 'ws-switcher-active-up' });
- else if(i == activeWorkspaceIndex && direction == DOWN)
+ else if(i == activeWorkspaceIndex && direction == Meta.MotionDirection.DOWN)
indicator = new St.Bin({ style_class: 'ws-switcher-active-down' });
else
indicator = new St.Bin({ style_class: 'ws-switcher-box' });
diff --git a/js/ui/workspacesView.js b/js/ui/workspacesView.js
index df3143f..3a5c2ab 100644
--- a/js/ui/workspacesView.js
+++ b/js/ui/workspacesView.js
@@ -1048,10 +1048,10 @@ const WorkspacesDisplay = new Lang.Class({
_onScrollEvent: function (actor, event) {
switch ( event.get_scroll_direction() ) {
case Clutter.ScrollDirection.UP:
- Main.wm.actionMoveWorkspaceUp();
+ Main.wm.actionMoveWorkspace(Meta.MotionDirection.UP);
break;
case Clutter.ScrollDirection.DOWN:
- Main.wm.actionMoveWorkspaceDown();
+ Main.wm.actionMoveWorkspace(Meta.MotionDirection.DOWN);
break;
}
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]