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