forked from rpms/gnome-shell
64 lines
2.2 KiB
Diff
64 lines
2.2 KiB
Diff
From fc54e0bed8dbab238394f6852d611d64b81f314e Mon Sep 17 00:00:00 2001
|
|
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
|
|
Date: Thu, 8 Apr 2021 17:19:37 +0200
|
|
Subject: [PATCH 1/2] workspacesView: Fix PgUp/PgDown shortcut
|
|
|
|
We still try to switch to the workspace above/below, which doesn't
|
|
do anything since the layout is now horizontal.
|
|
|
|
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1798>
|
|
---
|
|
js/ui/workspacesView.js | 28 ++++++++++++++++++++++------
|
|
1 file changed, 22 insertions(+), 6 deletions(-)
|
|
|
|
diff --git a/js/ui/workspacesView.js b/js/ui/workspacesView.js
|
|
index 1af45d88d..2c9da5c9b 100644
|
|
--- a/js/ui/workspacesView.js
|
|
+++ b/js/ui/workspacesView.js
|
|
@@ -1144,20 +1144,36 @@ class WorkspacesDisplay extends St.Widget {
|
|
_onKeyPressEvent(actor, event) {
|
|
if (!this.mapped)
|
|
return Clutter.EVENT_PROPAGATE;
|
|
- let workspaceManager = global.workspace_manager;
|
|
- let activeWs = workspaceManager.get_active_workspace();
|
|
- let ws;
|
|
+
|
|
+ const { workspaceManager } = global;
|
|
+ const vertical = workspaceManager.layout_rows === -1;
|
|
+ const rtl = this.get_text_direction() === Clutter.TextDirection.RTL;
|
|
+
|
|
+ let dir;
|
|
switch (event.get_key_symbol()) {
|
|
case Clutter.KEY_Page_Up:
|
|
- ws = activeWs.get_neighbor(Meta.MotionDirection.UP);
|
|
+ if (vertical)
|
|
+ dir = Meta.MotionDirection.UP;
|
|
+ else if (rtl)
|
|
+ dir = Meta.MotionDirection.RIGHT;
|
|
+ else
|
|
+ dir = Meta.MotionDirection.LEFT;
|
|
break;
|
|
case Clutter.KEY_Page_Down:
|
|
- ws = activeWs.get_neighbor(Meta.MotionDirection.DOWN);
|
|
+ if (vertical)
|
|
+ dir = Meta.MotionDirection.DOWN;
|
|
+ else if (rtl)
|
|
+ dir = Meta.MotionDirection.LEFT;
|
|
+ else
|
|
+ dir = Meta.MotionDirection.RIGHT;
|
|
break;
|
|
default:
|
|
return Clutter.EVENT_PROPAGATE;
|
|
}
|
|
- Main.wm.actionMoveWorkspace(ws);
|
|
+
|
|
+ const ws = workspaceManager.get_active_workspace().get_neighbor(dir);
|
|
+ if (ws)
|
|
+ Main.wm.actionMoveWorkspace(ws);
|
|
return Clutter.EVENT_STOP;
|
|
}
|
|
|
|
--
|
|
2.31.1
|
|
|