Resize the user's avatar when scaling factor changes

We need to consider the scaling factor in effect when updating the user's
avatar, and also make sure to update it as well whenever the scaling
factor changes.

https://bugzilla.gnome.org/show_bug.cgi?id=786120
This commit is contained in:
Mario Sanchez Prada 2017-08-10 16:21:50 +01:00
parent 5a621c57ef
commit b8eeac6fcf

View File

@ -35,6 +35,10 @@ var Avatar = new Lang.Class({
reactive: params.reactive, reactive: params.reactive,
width: this._iconSize * scaleFactor, width: this._iconSize * scaleFactor,
height: this._iconSize * scaleFactor }); height: this._iconSize * scaleFactor });
// Monitor the scaling factor to make sure we recreate the avatar when needed.
let themeContext = St.ThemeContext.get_for_stage(global.stage);
themeContext.connect('notify::scale-factor', Lang.bind(this, this.update));
}, },
setSensitive: function(sensitive) { setSensitive: function(sensitive) {
@ -56,6 +60,9 @@ var Avatar = new Lang.Class({
this.actor.child = new St.Icon({ icon_name: 'avatar-default-symbolic', this.actor.child = new St.Icon({ icon_name: 'avatar-default-symbolic',
icon_size: this._iconSize }); icon_size: this._iconSize });
} }
let scaleFactor = St.ThemeContext.get_for_stage(global.stage).scale_factor;
this.actor.set_size(this._iconSize * scaleFactor, this._iconSize * scaleFactor);
} }
}); });