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)
params[param] = params[param].deep_unpack();
let { monitor: monitorIndex,
let { connector,
label,
level,
max_level: maxLevel,
icon: serializedIcon } = params;
if (monitorIndex === undefined)
monitorIndex = -1;
let monitorIndex = -1;
if (connector) {
let monitorManager = Meta.MonitorManager.get();
monitorIndex = monitorManager.get_monitor_for_connector(connector);
}
let icon = null;
if (serializedIcon)