[gnome-shell] panelMenu: Interact to touch events



commit e545ec59b9eda989b98a41ee685d3a41fa099ee1
Author: Carlos Garnacho <carlosg gnome org>
Date:   Tue Jul 22 12:28:00 2014 +0200

    panelMenu: Interact to touch events
    
    No sequence checks are done, these UI elements promptly trigger a grab that
    will cancel ongoing touches and redirect later ones somewhere else, so that
    works as a barrier to multi-toggling.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=733633

 js/ui/panelMenu.js |   11 ++++++-----
 1 files changed, 6 insertions(+), 5 deletions(-)
---
diff --git a/js/ui/panelMenu.js b/js/ui/panelMenu.js
index 07494d1..863e0d7 100644
--- a/js/ui/panelMenu.js
+++ b/js/ui/panelMenu.js
@@ -100,7 +100,7 @@ const Button = new Lang.Class({
                       accessible_name: nameText ? nameText : "",
                       accessible_role: Atk.Role.MENU });
 
-        this.actor.connect('button-press-event', Lang.bind(this, this._onButtonPress));
+        this.actor.connect('event', Lang.bind(this, this._onEvent));
         this.actor.connect('key-press-event', Lang.bind(this, this._onSourceKeyPress));
         this.actor.connect('notify::visible', Lang.bind(this, this._onVisibilityChanged));
 
@@ -131,11 +131,12 @@ const Button = new Lang.Class({
         }
     },
 
-    _onButtonPress: function(actor, event) {
-        if (!this.menu)
-            return Clutter.EVENT_PROPAGATE;
+    _onEvent: function(actor, event) {
+        if (this.menu &&
+            (event.type() == Clutter.EventType.TOUCH_BEGIN ||
+             event.type() == Clutter.EventType.BUTTON_PRESS))
+            this.menu.toggle();
 
-        this.menu.toggle();
         return Clutter.EVENT_PROPAGATE;
     },
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]