
Instead of just passing a scale when getting a cached icon, pass both a 'paint_scale', the scale of which the icon will be painted on the stage, and a 'resource_scale', the scale of the resource used for painting. In effect, the texture size will use the scale 'paint_scale * resource_scale' in a ceiled value while the size of the actor will use 'paint_scale' when determining the size. this would load a bigger texture, but the downscaling would keep the visual quality. https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/5 https://bugzilla.gnome.org/show_bug.cgi?id=765011