[gnome-shell] workspace: Cap scaled floating size to target layout size



commit 7f402c1c6be99dcd92092eb37fbfd6c31624f1cb
Author: Florian Müllner <fmuellner gnome org>
Date:   Thu Jul 30 15:02:18 2020 +0200

    workspace: Cap scaled floating size to target layout size
    
    A window preview's floating geometry is scaled down according to the
    workspace's allocation, while the layout geometry is computed directly
    for the available space.
    
    For previews that maintain their real size in the layout geometry,
    that scaling leads to a distracting size bounce when transitioning
    between both layouts.
    
    Address that by not allowing the scaled floating size to drop below
    that layout size (which is at most equal to the unscaled floating size).
    
    https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2968

 js/ui/workspace.js | 5 +++++
 1 file changed, 5 insertions(+)
---
diff --git a/js/ui/workspace.js b/js/ui/workspace.js
index d7e179b1d1..ee7cbdc202 100644
--- a/js/ui/workspace.js
+++ b/js/ui/workspace.js
@@ -614,6 +614,11 @@ var WorkspaceLayout = GObject.registerClass({
             }
 
             workspaceBox.scale(allocationScale);
+            // don't allow the scaled floating size to drop below
+            // the target layout size
+            workspaceBox.set_size(
+                Math.max(workspaceBox.get_width(), width),
+                Math.max(workspaceBox.get_height(), height));
 
             layoutBox.x1 = x;
             layoutBox.x2 = layoutBox.x1 + width;


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