workspacesView: Fix scroll direction in RTL locales

Scrolling up or down (using the mouse wheel) should scroll to right
or left respectively (rather than the other way around).

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1608>
This commit is contained in:
Abderrahim Kitouni 2021-01-16 16:29:05 +01:00 committed by Marge Bot
parent 151a104f9a
commit 698e67c486

View File

@ -787,18 +787,23 @@ class WorkspacesDisplay extends St.Widget {
let workspaceManager = global.workspace_manager;
const vertical = workspaceManager.layout_rows === -1;
const rtl = this.text_direction === Clutter.TextDirection.RTL;
let activeWs = workspaceManager.get_active_workspace();
let ws;
switch (direction) {
case Clutter.ScrollDirection.UP:
if (vertical)
ws = activeWs.get_neighbor(Meta.MotionDirection.UP);
else if (rtl)
ws = activeWs.get_neighbor(Meta.MotionDirection.RIGHT);
else
ws = activeWs.get_neighbor(Meta.MotionDirection.LEFT);
break;
case Clutter.ScrollDirection.DOWN:
if (vertical)
ws = activeWs.get_neighbor(Meta.MotionDirection.DOWN);
else if (rtl)
ws = activeWs.get_neighbor(Meta.MotionDirection.LEFT);
else
ws = activeWs.get_neighbor(Meta.MotionDirection.RIGHT);
break;