[gnome-shell/gbsneto/multiline-on-hover: 2/4] iconGrid: Allocate preferred sizes if bigger than child size




commit e48891214b4d5254c5b10c4fa202348e45c88664
Author: Georges Basile Stavracas Neto <georges stavracas gmail com>
Date:   Wed Oct 21 15:40:20 2020 -0300

    iconGrid: Allocate preferred sizes if bigger than child size
    
    IconGridLayout uses the biggest minimum size to allocate its
    children. Next commit will make app icons with long names show
    not ellipsize on hover, and it is important that the icon itself
    is able to follow that.
    
    Use preferred size if it's bigger than the minimum size.
    
    https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1477

 js/ui/iconGrid.js | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)
---
diff --git a/js/ui/iconGrid.js b/js/ui/iconGrid.js
index d778988221..206b8ca7c9 100644
--- a/js/ui/iconGrid.js
+++ b/js/ui/iconGrid.js
@@ -765,7 +765,6 @@ var IconGridLayout = GObject.registerClass({
             this._calculateSpacing(childSize);
 
         const childBox = new Clutter.ActorBox();
-        childBox.set_size(childSize, childSize);
 
         let nChangedIcons = 0;
 
@@ -802,6 +801,10 @@ var IconGridLayout = GObject.registerClass({
 
                 childBox.set_origin(x, y);
 
+                const [,, naturalWidth, naturalHeight] = item.get_preferred_size();
+                childBox.set_size(Math.max(childSize, naturalWidth),
+                    Math.max(childSize, naturalHeight));
+
                 // Only ease icons when the page size didn't change
                 if (this._pageSizeChanged)
                     item.allocate(childBox);


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