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:
parent
261d36ba72
commit
b7db56ca9b
@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user