From eb9000576cdff9518dbfc0f452598b7a44802929 Mon Sep 17 00:00:00 2001 From: Benjamin Berg Date: Thu, 11 Apr 2019 11:43:03 +0200 Subject: [PATCH] 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 --- js/ui/shellDBus.js | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/js/ui/shellDBus.js b/js/ui/shellDBus.js index b1f2be2b3..19d07acce 100644 --- a/js/ui/shellDBus.js +++ b/js/ui/shellDBus.js @@ -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)