diff --git a/js/ui/mpris.js b/js/ui/mpris.js index f44f87e92..93d1ec68b 100644 --- a/js/ui/mpris.js +++ b/js/ui/mpris.js @@ -120,6 +120,10 @@ var MprisPlayer = class MprisPlayer extends Signals.EventEmitter { return this._trackCoverUrl; } + get app() { + return this._app; + } + playPause() { this._playerProxy.PlayPauseAsync().catch(logError); } @@ -143,14 +147,8 @@ var MprisPlayer = class MprisPlayer extends Signals.EventEmitter { raise() { // The remote Raise() method may run into focus stealing prevention, // so prefer activating the app via .desktop file if possible - let app = null; - if (this._mprisProxy.DesktopEntry) { - let desktopId = `${this._mprisProxy.DesktopEntry}.desktop`; - app = Shell.AppSystem.get_default().lookup_app(desktopId); - } - - if (app) - app.activate(); + if (this._app) + this._app.activate(); else if (this._mprisProxy.CanRaise) this._mprisProxy.RaiseAsync().catch(logError); } @@ -222,6 +220,13 @@ var MprisPlayer = class MprisPlayer extends Signals.EventEmitter { this._trackCoverUrl = ''; } + if (this._mprisProxy.DesktopEntry) { + const desktopId = `${this._mprisProxy.DesktopEntry}.desktop`; + this._app = Shell.AppSystem.get_default().lookup_app(desktopId); + } else { + this._app = null; + } + this.emit('changed'); let visible = this._playerProxy.CanPlay;