diff --git a/js/ui/status/thunderbolt.js b/js/ui/status/thunderbolt.js index 98e81dbf3..0c543190c 100644 --- a/js/ui/status/thunderbolt.js +++ b/js/ui/status/thunderbolt.js @@ -49,7 +49,6 @@ const BoltDeviceInterface = ' \ \ '; -const BoltClientProxy = Gio.DBusProxy.makeProxyWrapper(BoltClientInterface); const BoltDeviceProxy = Gio.DBusProxy.makeProxyWrapper(BoltDeviceInterface); /* */ @@ -78,6 +77,7 @@ var AuthMode = { ENABLED: 'enabled' }; +const BOLT_DBUS_CLIENT_IFACE = 'org.freedesktop.bolt1.Manager'; const BOLT_DBUS_NAME = 'org.freedesktop.bolt'; const BOLT_DBUS_PATH = '/org/freedesktop/bolt'; @@ -87,22 +87,26 @@ var Client = new Lang.Class({ _init() { this._proxy = null; - new BoltClientProxy( - Gio.DBus.system, - BOLT_DBUS_NAME, - BOLT_DBUS_PATH, - this._onProxyReady.bind(this) - ); + let nodeInfo = Gio.DBusNodeInfo.new_for_xml(BoltClientInterface); + Gio.DBusProxy.new(Gio.DBus.system, + Gio.DBusProxyFlags.DO_NOT_AUTO_START, + nodeInfo.lookup_interface(BOLT_DBUS_CLIENT_IFACE), + BOLT_DBUS_NAME, + BOLT_DBUS_PATH, + BOLT_DBUS_CLIENT_IFACE, + null, + this._onProxyReady.bind(this)); this.probing = false; }, - _onProxyReady(proxy, error) { - if (error !== null) { - log('error creating bolt proxy: %s'.format(error.message)); - return; - } - this._proxy = proxy; + _onProxyReady(o, res) { + try { + this._proxy = Gio.DBusProxy.new_finish(res); + } catch(e) { + log('error creating bolt proxy: %s'.format(e.message)); + return; + } this._propsChangedId = this._proxy.connect('g-properties-changed', this._onPropertiesChanged.bind(this)); this._deviceAddedId = this._proxy.connectSignal('DeviceAdded', this._onDeviceAdded.bind(this));