[gnome-shell] Immediately pop up menu on right click
- From: Colin Walters <walters src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [gnome-shell] Immediately pop up menu on right click
- Date: Fri, 2 Oct 2009 23:28:40 +0000 (UTC)
commit 3b8d53060d1b7146bde0854906a1a1285641a047
Author: Colin Walters <walters verbum org>
Date: Fri Sep 25 16:45:21 2009 -0400
Immediately pop up menu on right click
We were actually showing a menu on button 3 before, but only
through a chain of coincidences. This patch explicitly supports
it and makes sure we show it immediately rather than after
a timeout. Pass the activating button in so that we only pop
down on that button.
https://bugzilla.gnome.org/show_bug.cgi?id=596371
js/ui/appIcon.js | 21 +++++++++++++--------
1 files changed, 13 insertions(+), 8 deletions(-)
---
diff --git a/js/ui/appIcon.js b/js/ui/appIcon.js
index e6d8ec8..7a9df6f 100644
--- a/js/ui/appIcon.js
+++ b/js/ui/appIcon.js
@@ -210,14 +210,19 @@ AppIcon.prototype = {
},
_updateMenuOnButtonPress: function(actor, event) {
- if (this._menuTimeoutId != 0)
- Mainloop.source_remove(this._menuTimeoutId);
- this._menuTimeoutId = Mainloop.timeout_add(APPICON_MENU_POPUP_TIMEOUT_MS,
- Lang.bind(this, this.popupMenu));
+ let button = event.get_button();
+ if (button == 1) {
+ if (this._menuTimeoutId != 0)
+ Mainloop.source_remove(this._menuTimeoutId);
+ this._menuTimeoutId = Mainloop.timeout_add(APPICON_MENU_POPUP_TIMEOUT_MS,
+ Lang.bind(this, function () { this.popupMenu(button); }));
+ } else if (button == 3) {
+ this.popupMenu(button);
+ }
return false;
},
- popupMenu: function() {
+ popupMenu: function(activatingButton) {
if (this._menuTimeoutId != 0) {
Mainloop.source_remove(this._menuTimeoutId);
this._menuTimeoutId = 0;
@@ -241,7 +246,7 @@ AppIcon.prototype = {
}));
}
- this._menu.popup();
+ this._menu.popup(activatingButton);
return false;
},
@@ -476,13 +481,13 @@ AppIconMenu.prototype = {
}
},
- popup: function() {
+ popup: function(activatingButton) {
let [stageX, stageY] = this._source.actor.get_transformed_position();
let [stageWidth, stageHeight] = this._source.actor.get_transformed_size();
this._redisplay();
- this._windowContainer.popup(0, Main.currentTime());
+ this._windowContainer.popup(activatingButton, Main.currentTime());
this.emit('popup', true);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]