[gnome-shell] panel: fix up calendar-vs-menu handling on clock
- From: Dan Winship <danw src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell] panel: fix up calendar-vs-menu handling on clock
- Date: Tue, 21 Dec 2010 22:12:28 +0000 (UTC)
commit 7d0eeef90a85598a2862695755d4635bda4485b3
Author: Dan Winship <danw gnome org>
Date: Fri Nov 19 13:00:59 2010 -0500
panel: fix up calendar-vs-menu handling on clock
Give the clock's right-click menu its own PopupMenuManager so that if
you drop down another menu and then mouseover the clock it doesn't
pop up the right-click menu.
https://bugzilla.gnome.org/show_bug.cgi?id=634755
js/ui/panel.js | 13 +++++++------
1 files changed, 7 insertions(+), 6 deletions(-)
---
diff --git a/js/ui/panel.js b/js/ui/panel.js
index fc4614d..e797a36 100644
--- a/js/ui/panel.js
+++ b/js/ui/panel.js
@@ -512,11 +512,14 @@ ClockButton.prototype = {
_onButtonPress: function(actor, event) {
let button = event.get_button();
- if (button == 3 &&
- (!this._calendarPopup || !this._calendarPopup.isOpen))
+ let menuShowing = this.menu.isOpen;
+ let calendarShowing = this._calendarPopup && this._calendarPopup.isOpen;
+
+ if (menuShowing || (button == 3 && !calendarShowing))
this.menu.toggle();
else
this._toggleCalendar();
+ return true;
},
closeCalendar: function() {
@@ -525,15 +528,12 @@ ClockButton.prototype = {
this._calendarPopup.hide();
- this.menu.isOpen = false;
this.actor.remove_style_pseudo_class('pressed');
},
openCalendar: function() {
this._calendarPopup.show();
- // simulate an open menu, so it won't appear beneath the calendar
- this.menu.isOpen = true;
this.actor.add_style_pseudo_class('pressed');
},
@@ -803,7 +803,8 @@ Panel.prototype = {
this._clockButton = new ClockButton();
this._centerBox.add(this._clockButton.actor, { y_fill: true });
- this._menus.addMenu(this._clockButton.menu);
+ let clockMenuManager = new PopupMenu.PopupMenuManager(this);
+ clockMenuManager.addMenu(this._clockButton.menu);
/* right */
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]