userMenu: Force reload of background-image on icon changes
When changing the user's avatar image, AccountsService will overwrite the old image with the new one, so the location returned by get_icon_file() is always the same. In order to pick up the change, we need to make sure to clear the previous image from both StTextureCache and StThemeNode's paint cache. https://bugzilla.gnome.org/show_bug.cgi?id=679268
This commit is contained in:
parent
cd024e21f0
commit
6f3cf0ae50
@ -73,6 +73,11 @@ const UserAvatarWidget = new Lang.Class({
|
|||||||
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("%s");'.format(iconFile);
|
||||||
|
|
||||||
|
// AccountsService uses a fixed location for avatar images, so
|
||||||
|
// we need to clear out all cached data to pick up image changes,
|
||||||
|
// see https://bugzilla.gnome.org/show_bug.cgi?id=679268
|
||||||
|
this.actor.clear_background_image();
|
||||||
} 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',
|
||||||
|
Loading…
Reference in New Issue
Block a user