[gnome-shell] appDisplay: Fix app folder icon subicon spacing



commit 18cd24e6f4d7fe568fb557002d7de05d9fc47a4f
Author: Sebastian Keller <skeller gnome org>
Date:   Wed Jan 20 02:03:49 2021 +0100

    appDisplay: Fix app folder icon subicon spacing
    
    The code previously was using CSS to define row/column spacing and
    padding which was combined with a subicon size computed in code relative
    to the requested icon size.
    
    In smaller icon sizes it was possible for the CSS spacing+padding + the
    size of the two subicons to exceed the requested icon size. This then
    would lead to the label being pushed down for app folders compared to
    other icons.
    
    Another more severe issue caused by this would happen if the first item
    in an icon grid was an app folder. Then the calculation for the maximum
    allowed icon size could be off, leading to all icons in the grid
    becoming smaller than actually necessary.
    
    This commit changes this to use homogeneous row and column layouts to
    evenly distribute the remaining spacing instead of using a fixed CSS
    value.
    
    Fixes https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3069
    
    Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1581>

 data/theme/gnome-shell-sass/widgets/_app-grid.scss | 7 -------
 js/ui/appDisplay.js                                | 9 ++++++---
 2 files changed, 6 insertions(+), 10 deletions(-)
---
diff --git a/data/theme/gnome-shell-sass/widgets/_app-grid.scss 
b/data/theme/gnome-shell-sass/widgets/_app-grid.scss
index ba7c52174f..13eb926839 100644
--- a/data/theme/gnome-shell-sass/widgets/_app-grid.scss
+++ b/data/theme/gnome-shell-sass/widgets/_app-grid.scss
@@ -89,13 +89,6 @@ $app_grid_fg_color: #fff;
   height: 620px;
 }
 
-.app-folder-icon {
-  padding: $base_padding;
-  spacing-rows: $base_spacing;
-  spacing-columns: $base_spacing;
-}
-
-
 // Running app indicator (also shown in dash)
 .app-well-app-running-dot {
   height: 5px;
diff --git a/js/ui/appDisplay.js b/js/ui/appDisplay.js
index a80fb773be..61a563843d 100644
--- a/js/ui/appDisplay.js
+++ b/js/ui/appDisplay.js
@@ -1830,13 +1830,16 @@ class FolderView extends BaseAppView {
     }
 
     createFolderIcon(size) {
-        let layout = new Clutter.GridLayout();
+        const layout = new Clutter.GridLayout({
+            row_homogeneous: true,
+            column_homogeneous: true,
+        });
         let icon = new St.Widget({
             layout_manager: layout,
-            style_class: 'app-folder-icon',
             x_align: Clutter.ActorAlign.CENTER,
+            style: 'width: %dpx; height: %dpx;'.format(size, size),
         });
-        layout.hookup_style(icon);
+
         let subSize = Math.floor(FOLDER_SUBICON_FRACTION * size);
 
         let numItems = this._orderedItems.length;


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