diff --git a/data/gnome-shell-dbus-interfaces.gresource.xml b/data/gnome-shell-dbus-interfaces.gresource.xml index db3ef4ac2..8d335124a 100644 --- a/data/gnome-shell-dbus-interfaces.gresource.xml +++ b/data/gnome-shell-dbus-interfaces.gresource.xml @@ -2,7 +2,6 @@ net.hadess.SensorProxy.xml - net.hadess.SwitcherooControl.xml org.freedesktop.Application.xml org.freedesktop.bolt1.Device.xml org.freedesktop.bolt1.Manager.xml diff --git a/js/ui/appDisplay.js b/js/ui/appDisplay.js index 99a023fa2..604e4cd64 100644 --- a/js/ui/appDisplay.js +++ b/js/ui/appDisplay.js @@ -18,8 +18,6 @@ const Params = imports.misc.params; const Util = imports.misc.util; const SystemActions = imports.misc.systemActions; -const { loadInterfaceXML } = imports.misc.fileUtils; - var MENU_POPUP_TIMEOUT = 600; var MAX_COLUMNS = 6; var MIN_COLUMNS = 4; @@ -46,11 +44,6 @@ const FOLDER_DIALOG_ANIMATION_TIME = 200; const OVERSHOOT_THRESHOLD = 20; const OVERSHOOT_TIMEOUT = 1000; -const SWITCHEROO_BUS_NAME = 'net.hadess.SwitcherooControl'; -const SWITCHEROO_OBJECT_PATH = '/net/hadess/SwitcherooControl'; - -const SwitcherooProxyInterface = loadInterfaceXML('net.hadess.SwitcherooControl'); -const SwitcherooProxy = Gio.DBusProxy.makeProxyWrapper(SwitcherooProxyInterface); let discreteGpuAvailable = false; function _getCategories(info) { @@ -1162,31 +1155,19 @@ class AppDisplay extends St.BoxLayout { this._showView(initialView); this._updateFrequentVisibility(); - Gio.DBus.system.watch_name(SWITCHEROO_BUS_NAME, - Gio.BusNameWatcherFlags.NONE, - this._switcherooProxyAppeared.bind(this), - () => { - this._switcherooProxy = null; - this._updateDiscreteGpuAvailable(); - }); + this._switcherooNotifyId = global.connect('notify::switcheroo-control', + () => this._updateDiscreteGpuAvailable()); + this._updateDiscreteGpuAvailable(); } _updateDiscreteGpuAvailable() { - if (!this._switcherooProxy) + this._switcherooProxy = global.get_switcheroo_control(); + if (this._switcherooProxy) { + let prop = this._switcherooProxy.get_cached_property('HasDualGpu'); + discreteGpuAvailable = prop ? prop.unpack() : false; + } else { discreteGpuAvailable = false; - else - discreteGpuAvailable = this._switcherooProxy.HasDualGpu; - } - - _switcherooProxyAppeared() { - this._switcherooProxy = new SwitcherooProxy(Gio.DBus.system, SWITCHEROO_BUS_NAME, SWITCHEROO_OBJECT_PATH, - (proxy, error) => { - if (error) { - log(error.message); - return; - } - this._updateDiscreteGpuAvailable(); - }); + } } animate(animationDirection, onComplete) {