[gnome-shell/wip/exalm/gestures2: 31/34] workspaceAnimation: Group sticky windows and moving window
- From: Marge Bot <marge-bot src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell/wip/exalm/gestures2: 31/34] workspaceAnimation: Group sticky windows and moving window
- Date: Tue, 2 Feb 2021 19:35:10 +0000 (UTC)
commit 8eba75993240807c8bf4bbd814b302ad0cfb7432
Author: Alexander Mikhaylenko <exalm7659 gmail com>
Date: Sat Jun 20 23:44:24 2020 +0500
workspaceAnimation: Group sticky windows and moving window
Since the transitions consists of window clones now, all the clones appear
above sticky windows. Clone sticky windows as well, and treat them same as
moving window instead.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1326>
js/ui/workspaceAnimation.js | 36 ++++++++----------------------------
1 file changed, 8 insertions(+), 28 deletions(-)
---
diff --git a/js/ui/workspaceAnimation.js b/js/ui/workspaceAnimation.js
index 4f89da464f..a43a42e5cc 100644
--- a/js/ui/workspaceAnimation.js
+++ b/js/ui/workspaceAnimation.js
@@ -37,6 +37,11 @@ class WorkspaceGroup extends Clutter.Actor {
const isSticky =
window.is_on_all_workspaces() || window === this._movingWindow;
+ // No workspace means we should show windows that are on all workspaces
+ if (!this._workspace)
+ return isSticky;
+
+ // Otherwise only show windows that are (only) on that workspace
return !isSticky && window.located_on_workspace(this._workspace);
}
@@ -155,8 +160,7 @@ var WorkspaceAnimationController = class {
const switchData = {};
this._switchData = switchData;
- switchData.movingWindowBin = new Clutter.Actor();
- switchData.movingWindow = null;
+ switchData.stickyGroup = new WorkspaceGroup(null, this.movingWindow);
switchData.workspaceGroups = [];
switchData.gestureActivated = false;
switchData.inProgress = false;
@@ -169,7 +173,7 @@ var WorkspaceAnimationController = class {
Main.uiGroup.insert_child_above(switchData.backgroundGroup, global.window_group);
Main.uiGroup.insert_child_above(switchData.container, switchData.backgroundGroup);
- Main.uiGroup.insert_child_above(switchData.movingWindowBin, switchData.container);
+ Main.uiGroup.insert_child_above(switchData.stickyGroup, switchData.container);
let x = 0;
let y = 0;
@@ -208,38 +212,14 @@ var WorkspaceAnimationController = class {
switchData.container.y = -activeGroup.y;
else
switchData.container.x = -activeGroup.x;
-
- if (this.movingWindow) {
- const windowActor = this.movingWindow.get_compositor_private();
-
- switchData.movingWindow = {
- windowActor,
- parent: windowActor.get_parent(),
- };
-
- switchData.movingWindow.parent.remove_child(windowActor);
- switchData.movingWindowBin.add_child(windowActor);
- switchData.movingWindow.windowDestroyId = windowActor.connect('destroy', () => {
- switchData.movingWindow = null;
- });
- }
}
_finishWorkspaceSwitch(switchData) {
this._switchData = null;
- if (switchData.movingWindow) {
- const record = switchData.movingWindow;
- record.windowActor.disconnect(record.windowDestroyId);
- switchData.movingWindowBin.remove_child(record.windowActor);
- record.parent.add_child(record.windowActor);
-
- switchData.movingWindow = null;
- }
-
switchData.backgroundGroup.destroy();
switchData.container.destroy();
- switchData.movingWindowBin.destroy();
+ switchData.stickyGroup.destroy();
this.movingWindow = null;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]