workspacesViews: Use translation for showing Workspaces

We're going to use fixed position for positioning workspaces when
they're allocated by their own layout manager, using those positions to
scroll between different workspaces interferes with that, so do that
using translations instead.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1305
This commit is contained in:
Jonas Dreßler 2020-06-03 18:07:01 +02:00 committed by Florian Müllner
parent 261d36ba72
commit b7db56ca9b

View File

@ -174,11 +174,11 @@ class WorkspacesView extends WorkspacesViewBase {
let params = {}; let params = {};
if (workspaceManager.layout_rows == -1) if (workspaceManager.layout_rows == -1)
params.y = (w - active) * this._fullGeometry.height; params.translation_y = (w - active) * this._fullGeometry.height;
else if (this.text_direction == Clutter.TextDirection.RTL) else if (this.text_direction == Clutter.TextDirection.RTL)
params.x = (active - w) * this._fullGeometry.width; params.translation_x = (active - w) * this._fullGeometry.width;
else else
params.x = (w - active) * this._fullGeometry.width; params.translation_x = (w - active) * this._fullGeometry.width;
if (showAnimation) { if (showAnimation) {
let easeParams = Object.assign(params, { let easeParams = Object.assign(params, {
@ -310,8 +310,8 @@ class WorkspacesView extends WorkspacesViewBase {
let last = this._workspaces.length - 1; let last = this._workspaces.length - 1;
if (workspaceManager.layout_rows == -1) { if (workspaceManager.layout_rows == -1) {
let firstWorkspaceY = this._workspaces[0].y; let firstWorkspaceY = this._workspaces[0].translation_y;
let lastWorkspaceY = this._workspaces[last].y; let lastWorkspaceY = this._workspaces[last].translation_y;
let workspacesHeight = lastWorkspaceY - firstWorkspaceY; let workspacesHeight = lastWorkspaceY - firstWorkspaceY;
let currentY = firstWorkspaceY; let currentY = firstWorkspaceY;
@ -321,11 +321,11 @@ class WorkspacesView extends WorkspacesViewBase {
for (let i = 0; i < this._workspaces.length; i++) { for (let i = 0; i < this._workspaces.length; i++) {
this._workspaces[i].visible = Math.abs(i - adj.value) <= 1; this._workspaces[i].visible = Math.abs(i - adj.value) <= 1;
this._workspaces[i].y += dy; this._workspaces[i].translation_y += dy;
} }
} else { } else {
let firstWorkspaceX = this._workspaces[0].x; let firstWorkspaceX = this._workspaces[0].translation_x;
let lastWorkspaceX = this._workspaces[last].x; let lastWorkspaceX = this._workspaces[last].translation_x;
let workspacesWidth = lastWorkspaceX - firstWorkspaceX; let workspacesWidth = lastWorkspaceX - firstWorkspaceX;
let currentX = firstWorkspaceX; let currentX = firstWorkspaceX;
@ -335,7 +335,7 @@ class WorkspacesView extends WorkspacesViewBase {
for (let i = 0; i < this._workspaces.length; i++) { for (let i = 0; i < this._workspaces.length; i++) {
this._workspaces[i].visible = Math.abs(i - adj.value) <= 1; this._workspaces[i].visible = Math.abs(i - adj.value) <= 1;
this._workspaces[i].x += dx; this._workspaces[i].translation_x += dx;
} }
} }
} }