From fc54e0bed8dbab238394f6852d611d64b81f314e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Thu, 8 Apr 2021 17:19:37 +0200 Subject: [PATCH] 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: --- 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; }