appDisplay: Use global switcheroo-control D-Bus proxy
Rather than creating our own. https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1226
This commit is contained in:
parent
b17017679b
commit
3bfa9916da
@ -2,7 +2,6 @@
|
|||||||
<gresources>
|
<gresources>
|
||||||
<gresource prefix="/org/gnome/shell/dbus-interfaces">
|
<gresource prefix="/org/gnome/shell/dbus-interfaces">
|
||||||
<file preprocess="xml-stripblanks">net.hadess.SensorProxy.xml</file>
|
<file preprocess="xml-stripblanks">net.hadess.SensorProxy.xml</file>
|
||||||
<file preprocess="xml-stripblanks">net.hadess.SwitcherooControl.xml</file>
|
|
||||||
<file preprocess="xml-stripblanks">org.freedesktop.Application.xml</file>
|
<file preprocess="xml-stripblanks">org.freedesktop.Application.xml</file>
|
||||||
<file preprocess="xml-stripblanks">org.freedesktop.bolt1.Device.xml</file>
|
<file preprocess="xml-stripblanks">org.freedesktop.bolt1.Device.xml</file>
|
||||||
<file preprocess="xml-stripblanks">org.freedesktop.bolt1.Manager.xml</file>
|
<file preprocess="xml-stripblanks">org.freedesktop.bolt1.Manager.xml</file>
|
||||||
|
@ -18,8 +18,6 @@ const Params = imports.misc.params;
|
|||||||
const Util = imports.misc.util;
|
const Util = imports.misc.util;
|
||||||
const SystemActions = imports.misc.systemActions;
|
const SystemActions = imports.misc.systemActions;
|
||||||
|
|
||||||
const { loadInterfaceXML } = imports.misc.fileUtils;
|
|
||||||
|
|
||||||
var MENU_POPUP_TIMEOUT = 600;
|
var MENU_POPUP_TIMEOUT = 600;
|
||||||
var MAX_COLUMNS = 6;
|
var MAX_COLUMNS = 6;
|
||||||
var MIN_COLUMNS = 4;
|
var MIN_COLUMNS = 4;
|
||||||
@ -46,11 +44,6 @@ const FOLDER_DIALOG_ANIMATION_TIME = 200;
|
|||||||
const OVERSHOOT_THRESHOLD = 20;
|
const OVERSHOOT_THRESHOLD = 20;
|
||||||
const OVERSHOOT_TIMEOUT = 1000;
|
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;
|
let discreteGpuAvailable = false;
|
||||||
|
|
||||||
function _getCategories(info) {
|
function _getCategories(info) {
|
||||||
@ -1162,31 +1155,19 @@ class AppDisplay extends St.BoxLayout {
|
|||||||
this._showView(initialView);
|
this._showView(initialView);
|
||||||
this._updateFrequentVisibility();
|
this._updateFrequentVisibility();
|
||||||
|
|
||||||
Gio.DBus.system.watch_name(SWITCHEROO_BUS_NAME,
|
this._switcherooNotifyId = global.connect('notify::switcheroo-control',
|
||||||
Gio.BusNameWatcherFlags.NONE,
|
() => this._updateDiscreteGpuAvailable());
|
||||||
this._switcherooProxyAppeared.bind(this),
|
|
||||||
() => {
|
|
||||||
this._switcherooProxy = null;
|
|
||||||
this._updateDiscreteGpuAvailable();
|
this._updateDiscreteGpuAvailable();
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
_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;
|
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) {
|
animate(animationDirection, onComplete) {
|
||||||
|
Loading…
Reference in New Issue
Block a user