shellDBus: Accept connector to restrict OSD to one monitor

The monitor index is not something that gnome-shell and
gnome-settings-daemon seem to be agreeing about. Using the connector
string is a much more reliable method of identifying a specific screen
and we are indeed using this already for monitor labling.

So switch over to use the connector rather than the monitor index. If a
user tries to use the old API, then the OSD will simply show up on all
monitors (which is the status quo currently anyway).

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/489
This commit is contained in:
Benjamin Berg 2019-04-11 11:43:03 +02:00 committed by Florian Müllner
parent 862aaf341e
commit eb9000576c

View File

@ -79,14 +79,17 @@ var GnomeShell = class {
for (let param in params) for (let param in params)
params[param] = params[param].deep_unpack(); params[param] = params[param].deep_unpack();
let { monitor: monitorIndex, let { connector,
label, label,
level, level,
max_level: maxLevel, max_level: maxLevel,
icon: serializedIcon } = params; icon: serializedIcon } = params;
if (monitorIndex === undefined) let monitorIndex = -1;
monitorIndex = -1; if (connector) {
let monitorManager = Meta.MonitorManager.get();
monitorIndex = monitorManager.get_monitor_for_connector(connector);
}
let icon = null; let icon = null;
if (serializedIcon) if (serializedIcon)