userWidget: Fix avatar size
The texture cache now returns an actor with an appropriate ClutterContent rather than a ClutterTexture. That actor uses the CONTENT_SIZE request mode, which means that it will unconditionally request the preferred size of the content. That is, setting an explicit size no longer has an effect. Fix this by making sure the image is already loaded with the desired dimensions. https://gitlab.gnome.org/GNOME/gnome-shell/issues/1024
This commit is contained in:
parent
47915f8c11
commit
b90f4d29a4
@ -46,15 +46,14 @@ var Avatar = class {
|
|||||||
if (iconFile) {
|
if (iconFile) {
|
||||||
let file = Gio.File.new_for_path(iconFile);
|
let file = Gio.File.new_for_path(iconFile);
|
||||||
this.actor.child = null;
|
this.actor.child = null;
|
||||||
this.actor.style = 'background-image: url("%s");'.format(iconFile);
|
this.actor.style = `
|
||||||
|
background-image: url("${iconFile}");
|
||||||
|
background-size: ${this._iconSize}px`;
|
||||||
} else {
|
} else {
|
||||||
this.actor.style = null;
|
this.actor.style = null;
|
||||||
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);
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user