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




commit c192f5a454bfee31d1e477eb0943eb06f13fa588
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]