[gnome-shell/gnome-40] workspace: Only change opacity of minimized windows during transitions



commit 01ceb5463f83183722b347f3153f872ad12cff17
Author: Sebastian Keller <skeller gnome org>
Date:   Mon May 17 19:40:12 2021 +0200

    workspace: Only change opacity of minimized windows during transitions
    
    Dragging a window preview in the overview is supposed to change the
    opacity of the dragged actor. This however fails for minimized windows,
    because Workspace::allocate() also changes the opacity of those. The
    allocation gets triggered by removing the window actor from the
    workspace when starting the drag. Avoid this by only changing the
    opacity during the overview transitions.
    
    Fixes https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/4292
    
    Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1847>

 js/ui/workspace.js | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)
---
diff --git a/js/ui/workspace.js b/js/ui/workspace.js
index fafa368ce7..7e6018fbd3 100644
--- a/js/ui/workspace.js
+++ b/js/ui/workspace.js
@@ -627,8 +627,9 @@ var WorkspaceLayout = GObject.registerClass({
         }
 
         const { ControlsState } = OverviewControls;
-        const inSessionTransition =
-            this._overviewAdjustment.value <= ControlsState.WINDOW_PICKER;
+        const { currentState, transitioning } =
+            this._overviewAdjustment.getStateTransitionParams();
+        const inSessionTransition = currentState <= ControlsState.WINDOW_PICKER;
 
         const window = this._sortedWindows[0];
 
@@ -638,8 +639,8 @@ var WorkspaceLayout = GObject.registerClass({
             const [, bottomOversize] = window.chromeHeights();
             const [containerX, containerY] = containerBox.get_origin();
 
-            const extraHeightProgress = this._overviewAdjustment.value -
-                OverviewControls.ControlsState.WINDOW_PICKER;
+            const extraHeightProgress =
+                currentState - OverviewControls.ControlsState.WINDOW_PICKER;
 
             const extraClipHeight = bottomOversize * (1 - extraHeightProgress);
 
@@ -689,7 +690,8 @@ var WorkspaceLayout = GObject.registerClass({
                 workspaceBoxWidth = 0;
                 workspaceBoxHeight = 0;
 
-                child.opacity = stateAdjustementValue * 255;
+                if (transitioning)
+                    child.opacity = stateAdjustementValue * 255;
             }
 
             // Don't allow the scaled floating size to drop below


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]