workspaceAnimation: Stop depending on shellwm
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1326>
This commit is contained in:
parent
bebd612a8f
commit
269c5ca957
@ -960,6 +960,11 @@ var WindowManager = class {
|
|||||||
|
|
||||||
this._workspaceAnimation =
|
this._workspaceAnimation =
|
||||||
new WorkspaceAnimation.WorkspaceAnimationController();
|
new WorkspaceAnimation.WorkspaceAnimationController();
|
||||||
|
|
||||||
|
this._shellwm.connect('kill-switch-workspace', () => {
|
||||||
|
this._workspaceAnimation.cancelSwitchAnimation();
|
||||||
|
this._switchWorkspaceDone();
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
async _startX11Services(task, cancellable) {
|
async _startX11Services(task, cancellable) {
|
||||||
@ -1618,7 +1623,20 @@ var WindowManager = class {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
this._workspaceAnimation.animateSwitch(shellwm, from, to, direction);
|
this._switchInProgress = true;
|
||||||
|
|
||||||
|
this._workspaceAnimation.animateSwitch(from, to, direction, () => {
|
||||||
|
this._shellwm.completed_switch_workspace();
|
||||||
|
this._switchInProgress = false;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
_switchWorkspaceDone() {
|
||||||
|
if (!this._switchInProgress)
|
||||||
|
return;
|
||||||
|
|
||||||
|
this._shellwm.completed_switch_workspace();
|
||||||
|
this._switchInProgress = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
_showTilePreview(shellwm, window, tileRect, monitorIndex) {
|
_showTilePreview(shellwm, window, tileRect, monitorIndex) {
|
||||||
|
@ -10,18 +10,8 @@ const WINDOW_ANIMATION_TIME = 250;
|
|||||||
|
|
||||||
var WorkspaceAnimationController = class {
|
var WorkspaceAnimationController = class {
|
||||||
constructor() {
|
constructor() {
|
||||||
this._shellwm = global.window_manager;
|
|
||||||
this._movingWindow = null;
|
this._movingWindow = null;
|
||||||
|
|
||||||
this._switchData = null;
|
this._switchData = null;
|
||||||
this._shellwm.connect('kill-switch-workspace', shellwm => {
|
|
||||||
if (this._switchData) {
|
|
||||||
if (this._switchData.inProgress)
|
|
||||||
this._switchWorkspaceDone(shellwm);
|
|
||||||
else if (!this._switchData.gestureActivated)
|
|
||||||
this._finishWorkspaceSwitch(this._switchData);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
global.display.connect('restacked', this._syncStacking.bind(this));
|
global.display.connect('restacked', this._syncStacking.bind(this));
|
||||||
|
|
||||||
@ -225,7 +215,7 @@ var WorkspaceAnimationController = class {
|
|||||||
this.movingWindow = null;
|
this.movingWindow = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
animateSwitch(shellwm, from, to, direction) {
|
animateSwitch(from, to, direction, onComplete) {
|
||||||
this._prepareWorkspaceSwitch(from, to, direction);
|
this._prepareWorkspaceSwitch(from, to, direction);
|
||||||
this._switchData.inProgress = true;
|
this._switchData.inProgress = true;
|
||||||
|
|
||||||
@ -247,15 +237,13 @@ var WorkspaceAnimationController = class {
|
|||||||
y: yDest,
|
y: yDest,
|
||||||
duration: WINDOW_ANIMATION_TIME,
|
duration: WINDOW_ANIMATION_TIME,
|
||||||
mode: Clutter.AnimationMode.EASE_OUT_CUBIC,
|
mode: Clutter.AnimationMode.EASE_OUT_CUBIC,
|
||||||
onComplete: () => this._switchWorkspaceDone(shellwm),
|
onComplete: () => {
|
||||||
|
this._finishWorkspaceSwitch(this._switchData);
|
||||||
|
onComplete();
|
||||||
|
},
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
_switchWorkspaceDone(shellwm) {
|
|
||||||
this._finishWorkspaceSwitch(this._switchData);
|
|
||||||
shellwm.completed_switch_workspace();
|
|
||||||
}
|
|
||||||
|
|
||||||
_directionForProgress(progress) {
|
_directionForProgress(progress) {
|
||||||
if (global.workspace_manager.layout_rows === -1) {
|
if (global.workspace_manager.layout_rows === -1) {
|
||||||
return progress > 0
|
return progress > 0
|
||||||
@ -412,6 +400,16 @@ var WorkspaceAnimationController = class {
|
|||||||
return this._switchData !== null && this._switchData.gestureActivated;
|
return this._switchData !== null && this._switchData.gestureActivated;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
cancelSwitchAnimation() {
|
||||||
|
if (!this._switchData)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (this._switchData.gestureActivated)
|
||||||
|
return;
|
||||||
|
|
||||||
|
this._finishWorkspaceSwitch(this._switchData);
|
||||||
|
}
|
||||||
|
|
||||||
set movingWindow(movingWindow) {
|
set movingWindow(movingWindow) {
|
||||||
this._movingWindow = movingWindow;
|
this._movingWindow = movingWindow;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user