[gnome-shell/wip/snwh/appgrid-regression-fixes] workspacesView: Add Home and End keys for workspace navigation
- From: Sam Hewitt <snwh src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell/wip/snwh/appgrid-regression-fixes] workspacesView: Add Home and End keys for workspace navigation
- Date: Mon, 21 Feb 2022 19:27:36 +0000 (UTC)
commit e27c587eed1022c0dc8fce9a25a7487309f21b60
Author: kyte <kyteinsky gmail com>
Date: Mon Feb 21 20:06:50 2022 +0530
workspacesView: Add Home and End keys for workspace navigation
This commit adds support for Home and End keys to move
to the first and last workspace respectively.
Previously only Page_Up and Page_Down were recognized
to move one workspace at a time in overview mode.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2201>
js/ui/workspacesView.js | 31 +++++++++++++++++++++++--------
1 file changed, 23 insertions(+), 8 deletions(-)
---
diff --git a/js/ui/workspacesView.js b/js/ui/workspacesView.js
index 0acc3e5620..f132528271 100644
--- a/js/ui/workspacesView.js
+++ b/js/ui/workspacesView.js
@@ -1158,31 +1158,46 @@ class WorkspacesDisplay extends St.Widget {
const vertical = workspaceManager.layout_rows === -1;
const rtl = this.get_text_direction() === Clutter.TextDirection.RTL;
- let dir;
+ let which;
switch (event.get_key_symbol()) {
case Clutter.KEY_Page_Up:
if (vertical)
- dir = Meta.MotionDirection.UP;
+ which = Meta.MotionDirection.UP;
else if (rtl)
- dir = Meta.MotionDirection.RIGHT;
+ which = Meta.MotionDirection.RIGHT;
else
- dir = Meta.MotionDirection.LEFT;
+ which = Meta.MotionDirection.LEFT;
break;
case Clutter.KEY_Page_Down:
if (vertical)
- dir = Meta.MotionDirection.DOWN;
+ which = Meta.MotionDirection.DOWN;
else if (rtl)
- dir = Meta.MotionDirection.LEFT;
+ which = Meta.MotionDirection.LEFT;
else
- dir = Meta.MotionDirection.RIGHT;
+ which = Meta.MotionDirection.RIGHT;
+ break;
+ case Clutter.KEY_Home:
+ which = 0;
+ break;
+ case Clutter.KEY_End:
+ which = workspaceManager.n_workspaces - 1;
break;
default:
return Clutter.EVENT_PROPAGATE;
}
- const ws = workspaceManager.get_active_workspace().get_neighbor(dir);
+ let ws;
+ if (which < 0)
+ // Negative workspace numbers are directions
+ // with respect to the current workspace
+ ws = workspaceManager.get_active_workspace().get_neighbor(which);
+ else
+ // Otherwise it is a workspace index
+ ws = workspaceManager.get_workspace_by_index(which);
+
if (ws)
Main.wm.actionMoveWorkspace(ws);
+
return Clutter.EVENT_STOP;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]