IconGrid: don't force the size of the icon
Forcing the icon size will distort it unnecessarily, and will in any case not work if showing an animation (which is a ClutterGroup). Instead, set the size on the bin, and make it align its child if needed. https://bugzilla.gnome.org/show_bug.cgi?id=666606
This commit is contained in:
parent
875b6d131b
commit
26580f8f2c
@ -35,7 +35,8 @@ const BaseIcon = new Lang.Class({
|
|||||||
this.actor.set_child(box);
|
this.actor.set_child(box);
|
||||||
|
|
||||||
this.iconSize = ICON_SIZE;
|
this.iconSize = ICON_SIZE;
|
||||||
this._iconBin = new St.Bin();
|
this._iconBin = new St.Bin({ x_align: St.Align.MIDDLE,
|
||||||
|
y_align: St.Align.MIDDLE });
|
||||||
|
|
||||||
box.add_actor(this._iconBin);
|
box.add_actor(this._iconBin);
|
||||||
|
|
||||||
@ -125,12 +126,12 @@ const BaseIcon = new Lang.Class({
|
|||||||
this.iconSize = size;
|
this.iconSize = size;
|
||||||
this.icon = this.createIcon(this.iconSize);
|
this.icon = this.createIcon(this.iconSize);
|
||||||
|
|
||||||
|
this._iconBin.child = this.icon;
|
||||||
|
|
||||||
// The icon returned by createIcon() might actually be smaller than
|
// The icon returned by createIcon() might actually be smaller than
|
||||||
// the requested icon size (for instance StTextureCache does this
|
// the requested icon size (for instance StTextureCache does this
|
||||||
// for fallback icons), so set the size explicitly.
|
// for fallback icons), so set the size explicitly.
|
||||||
this.icon.set_size(this.iconSize, this.iconSize);
|
this._iconBin.set_size(this.iconSize, this.iconSize);
|
||||||
|
|
||||||
this._iconBin.child = this.icon;
|
|
||||||
},
|
},
|
||||||
|
|
||||||
_onStyleChanged: function() {
|
_onStyleChanged: function() {
|
||||||
@ -145,6 +146,11 @@ const BaseIcon = new Lang.Class({
|
|||||||
size = found ? len : ICON_SIZE;
|
size = found ? len : ICON_SIZE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// don't create icons unnecessarily
|
||||||
|
if (size == this.iconSize &&
|
||||||
|
this._iconBin.child)
|
||||||
|
return;
|
||||||
|
|
||||||
this._createIconTexture(size);
|
this._createIconTexture(size);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
Loading…
Reference in New Issue
Block a user