animation: Add (integer) geometry scaling support to Spinner
Until now it only supported (float) fractional scaling. Since the SpinnerContent requires a Clutter size in logical pixels, we need to specify that at map time when the scaling factor is known. Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/8126 Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3634>
This commit is contained in:
parent
4f5cd433b2
commit
c9cd4fbcd0
@ -15,16 +15,22 @@ class Spinner extends St.Widget {
|
|||||||
hideOnStop: false,
|
hideOnStop: false,
|
||||||
});
|
});
|
||||||
super({
|
super({
|
||||||
width: size,
|
|
||||||
height: size,
|
|
||||||
opacity: 0,
|
opacity: 0,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
this._size = size;
|
||||||
this._animate = params.animate;
|
this._animate = params.animate;
|
||||||
this._hideOnStop = params.hideOnStop;
|
this._hideOnStop = params.hideOnStop;
|
||||||
this.visible = !this._hideOnStop;
|
this.visible = !this._hideOnStop;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
vfunc_map() {
|
||||||
|
const {scaleFactor} = St.ThemeContext.get_for_stage(global.stage);
|
||||||
|
const logicalSize = this._size * scaleFactor;
|
||||||
|
this.set_size(logicalSize, logicalSize);
|
||||||
|
super.vfunc_map();
|
||||||
|
}
|
||||||
|
|
||||||
play() {
|
play() {
|
||||||
this.remove_all_transitions();
|
this.remove_all_transitions();
|
||||||
this.set_content(new St.SpinnerContent());
|
this.set_content(new St.SpinnerContent());
|
||||||
|
Loading…
x
Reference in New Issue
Block a user