[gnome-shell] animation: Scale animation actor for HiDPI



commit 5b2c604fe4f6d78727fff4d35224f5e13e8fc421
Author: Daniel García Moreno <dani danigm net>
Date:   Fri Jan 17 10:12:52 2020 +0100

    animation: Scale animation actor for HiDPI
    
    The Animation class inherits from St.Bin and manages the scale factor
    in the image loading, but the widget size doesn't change and doesn't
    depend on the scale factor so when the scale factor is different
    from 1 the widget size doesn't match the image size.
    
    This patch resizes the Animation widget using the scale factor so the
    widget will match the animation images sizes.
    
    Fixes https://gitlab.gnome.org/GNOME/gnome-shell/issues/1746

 js/ui/animation.js | 14 +++++++++++---
 1 file changed, 11 insertions(+), 3 deletions(-)
---
diff --git a/js/ui/animation.js b/js/ui/animation.js
index 5cd9f3a207..2344851adc 100644
--- a/js/ui/animation.js
+++ b/js/ui/animation.js
@@ -12,14 +12,22 @@ var SPINNER_ANIMATION_DELAY = 1000;
 var Animation = GObject.registerClass(
 class Animation extends St.Bin {
     _init(file, width, height, speed) {
-        super._init({ width, height });
+        const themeContext = St.ThemeContext.get_for_stage(global.stage);
+
+        super._init({
+            width: width * themeContext.scale_factor,
+            height: height * themeContext.scale_factor,
+        });
+
         this.connect('destroy', this._onDestroy.bind(this));
         this.connect('resource-scale-changed',
             this._loadFile.bind(this, file, width, height));
 
-        let themeContext = St.ThemeContext.get_for_stage(global.stage);
         this._scaleChangedId = themeContext.connect('notify::scale-factor',
-            this._loadFile.bind(this, file, width, height));
+            () => {
+                this._loadFile(file, width, height);
+                this.set_size(width * themeContext.scale_factor, height * themeContext.scale_factor);
+            });
 
         this._speed = speed;
 


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