iconGrid: Downscale icon size when comparing to defaults

The return value of st_theme_node_lookup_length() is scaled according
to the scale factor. IconGrid.ICON_SIZE is not. However, when BaseIcon
tries to fetch the CSS value for "icon-size" (which returns a scaled
value), it uses it as-is, mixing the two coordinate systems.

Use a single coordinate system (unscaled sizes) in IconGrid.BaseIcon.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1175
This commit is contained in:
Georges Basile Stavracas Neto 2020-04-03 15:28:57 -03:00
parent fbe2e30f38
commit 402fd8ec29

View File

@ -114,8 +114,11 @@ class BaseIcon extends St.Bin {
if (this._setSizeManually) { if (this._setSizeManually) {
size = this.iconSize; size = this.iconSize;
} else { } else {
const { scaleFactor } =
St.ThemeContext.get_for_stage(global.stage);
let [found, len] = node.lookup_length('icon-size', false); let [found, len] = node.lookup_length('icon-size', false);
size = found ? len : ICON_SIZE; size = found ? len / scaleFactor : ICON_SIZE;
} }
if (this.iconSize == size && this._iconBin.child) if (this.iconSize == size && this._iconBin.child)