From ccd8b47d3024dc79535e6b484d5b5284c901fdc3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Fri, 6 Dec 2019 18:07:35 +0100 Subject: [PATCH] popupMenu: Close when a system modal pops up Just like switcher popups, popup menus don't play well together with system modals, and generally have a lower priority. So just like switcher popups, close popup menus when a system modal dialog pops up. https://gitlab.gnome.org/GNOME/gnome-shell/issues/1536 --- js/ui/popupMenu.js | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/js/ui/popupMenu.js b/js/ui/popupMenu.js index 53a1cd170..c3e763b36 100644 --- a/js/ui/popupMenu.js +++ b/js/ui/popupMenu.js @@ -817,6 +817,7 @@ var PopupMenu = class extends PopupMenuBase { this._onKeyPress.bind(this)); } + this._systemModalOpenedId = 0; this._openedSubMenu = null; } @@ -891,6 +892,11 @@ var PopupMenu = class extends PopupMenuBase { if (this.isEmpty()) return; + if (!this._systemModalOpenedId) { + this._systemModalOpenedId = + Main.layoutManager.connect('system-modal-opened', () => this.close()); + } + this.isOpen = true; this._boxPointer.setPosition(this.sourceActor, this._arrowAlignment); @@ -921,6 +927,11 @@ var PopupMenu = class extends PopupMenuBase { destroy() { if (this._keyPressId) this.sourceActor.disconnect(this._keyPressId); + + if (this._systemModalOpenedId) + Main.layoutManager.disconnect(this._systemModalOpenedId); + this._systemModalOpenedId = 0; + super.destroy(); } };