panel: Use dedicated Spinner class
The startup/busy indication in the app menu was left out of commit
22e21ad7d1
because it doesn't use a hard-coded image, but as the
image in the CSS is actually the same used by the spinner class,
drop the "custom" styling and use the regular spinner.
https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/636
This commit is contained in:
parent
dd1fdf88ff
commit
2743f18af4
@ -1171,7 +1171,6 @@ StScrollBar {
|
|||||||
// a little unstructured mess:
|
// a little unstructured mess:
|
||||||
|
|
||||||
#appMenu {
|
#appMenu {
|
||||||
spinner-image: url("resource:///org/gnome/shell/theme/process-working.svg");
|
|
||||||
spacing: 4px;
|
spacing: 4px;
|
||||||
|
|
||||||
.label-shadow { color: transparent; }
|
.label-shadow { color: transparent; }
|
||||||
|
@ -203,7 +203,6 @@ var AppMenuButton = GObject.registerClass({
|
|||||||
this._busyNotifyId = 0;
|
this._busyNotifyId = 0;
|
||||||
|
|
||||||
let bin = new St.Bin({ name: 'appMenu' });
|
let bin = new St.Bin({ name: 'appMenu' });
|
||||||
bin.connect('style-changed', this._onStyleChanged.bind(this));
|
|
||||||
this.add_actor(bin);
|
this.add_actor(bin);
|
||||||
|
|
||||||
this.bind_property("reactive", this, "can-focus", 0);
|
this.bind_property("reactive", this, "can-focus", 0);
|
||||||
@ -238,9 +237,8 @@ var AppMenuButton = GObject.registerClass({
|
|||||||
this._overviewHidingId = Main.overview.connect('hiding', this._sync.bind(this));
|
this._overviewHidingId = Main.overview.connect('hiding', this._sync.bind(this));
|
||||||
this._overviewShowingId = Main.overview.connect('showing', this._sync.bind(this));
|
this._overviewShowingId = Main.overview.connect('showing', this._sync.bind(this));
|
||||||
|
|
||||||
this._stop = true;
|
this._spinner = new Animation.Spinner(PANEL_ICON_SIZE, true);
|
||||||
|
this._container.add_actor(this._spinner.actor);
|
||||||
this._spinner = null;
|
|
||||||
|
|
||||||
let menu = new AppMenu(this);
|
let menu = new AppMenu(this);
|
||||||
this.setMenu(menu);
|
this.setMenu(menu);
|
||||||
@ -288,17 +286,6 @@ var AppMenuButton = GObject.registerClass({
|
|||||||
} });
|
} });
|
||||||
}
|
}
|
||||||
|
|
||||||
_onStyleChanged(actor) {
|
|
||||||
let node = actor.get_theme_node();
|
|
||||||
let [success, icon] = node.lookup_url('spinner-image', false);
|
|
||||||
if (!success || (this._spinnerIcon && this._spinnerIcon.equal(icon)))
|
|
||||||
return;
|
|
||||||
this._spinnerIcon = icon;
|
|
||||||
this._spinner = new Animation.AnimatedIcon(this._spinnerIcon, PANEL_ICON_SIZE);
|
|
||||||
this._container.add_actor(this._spinner.actor);
|
|
||||||
this._spinner.actor.hide();
|
|
||||||
}
|
|
||||||
|
|
||||||
_syncIcon() {
|
_syncIcon() {
|
||||||
if (!this._targetApp)
|
if (!this._targetApp)
|
||||||
return;
|
return;
|
||||||
@ -315,34 +302,11 @@ var AppMenuButton = GObject.registerClass({
|
|||||||
}
|
}
|
||||||
|
|
||||||
stopAnimation() {
|
stopAnimation() {
|
||||||
if (this._stop)
|
|
||||||
return;
|
|
||||||
|
|
||||||
this._stop = true;
|
|
||||||
|
|
||||||
if (this._spinner == null)
|
|
||||||
return;
|
|
||||||
|
|
||||||
Tweener.addTween(this._spinner.actor,
|
|
||||||
{ opacity: 0,
|
|
||||||
time: SPINNER_ANIMATION_TIME,
|
|
||||||
transition: "easeOutQuad",
|
|
||||||
onComplete: () => {
|
|
||||||
this._spinner.stop();
|
this._spinner.stop();
|
||||||
this._spinner.actor.opacity = 255;
|
|
||||||
this._spinner.actor.hide();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
startAnimation() {
|
startAnimation() {
|
||||||
this._stop = false;
|
|
||||||
|
|
||||||
if (this._spinner == null)
|
|
||||||
return;
|
|
||||||
|
|
||||||
this._spinner.play();
|
this._spinner.play();
|
||||||
this._spinner.actor.show();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
_onAppStateChanged(appSys, app) {
|
_onAppStateChanged(appSys, app) {
|
||||||
|
Loading…
Reference in New Issue
Block a user