[gnome-shell] panelMenu: Close menu when hiding the corresponding button
- From: Florian Müllner <fmuellner src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell] panelMenu: Close menu when hiding the corresponding button
- Date: Thu, 11 Jul 2013 15:27:48 +0000 (UTC)
commit dabcd29fb6583746425f7ee1ce7c06adcb9ff421
Author: Florian Müllner <fmuellner gnome org>
Date: Wed Jul 3 15:55:35 2013 +0200
panelMenu: Close menu when hiding the corresponding button
A PanelMenuButton added to the top bar might not be visible at all
times. If it is hidden while the corresponding menu is open, we
currently don't do anything at all, e.g. the menu remains open
pointing to an arbitrary location in the top bar.
Instead, close the menu automatically in that case.
https://bugzilla.gnome.org/show_bug.cgi?id=703540
js/ui/panelMenu.js | 9 +++++++++
1 files changed, 9 insertions(+), 0 deletions(-)
---
diff --git a/js/ui/panelMenu.js b/js/ui/panelMenu.js
index b73152e..d77143b 100644
--- a/js/ui/panelMenu.js
+++ b/js/ui/panelMenu.js
@@ -110,6 +110,7 @@ const Button = new Lang.Class({
this.actor.connect('button-press-event', Lang.bind(this, this._onButtonPress));
this.actor.connect('key-press-event', Lang.bind(this, this._onSourceKeyPress));
+ this.actor.connect('notify::visible', Lang.bind(this, this._onVisibilityChanged));
if (dontCreateMenu)
this.menu = new PopupMenu.PopupDummyMenu(this.actor);
@@ -183,6 +184,14 @@ const Button = new Lang.Class({
return false;
},
+ _onVisibilityChanged: function() {
+ if (!this.menu)
+ return;
+
+ if (!this.actor.visible)
+ this.menu.close();
+ },
+
_onMenuKeyPress: function(actor, event) {
if (global.focus_manager.navigate_from_event(event))
return true;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]