[sushi] mainWindow: use GDK for keyboard events



commit d5e5f06788c8e2adf27856a97409dfdf142c303f
Author: Cosimo Cecchi <cosimoc gnome org>
Date:   Mon Mar 9 10:36:39 2015 -0700

    mainWindow: use GDK for keyboard events
    
    When listening to key events, use the GtkWindow instead of the stage.
    This seems to help with a deadlock in the Clutter GDK backend.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=745738

 src/js/ui/mainWindow.js |   21 ++++++++++++---------
 1 files changed, 12 insertions(+), 9 deletions(-)
---
diff --git a/src/js/ui/mainWindow.js b/src/js/ui/mainWindow.js
index b434a8e..51ccb55 100644
--- a/src/js/ui/mainWindow.js
+++ b/src/js/ui/mainWindow.js
@@ -124,8 +124,9 @@ MainWindow.prototype = {
         this._stage.add_actor(this._mainGroup);
         this._mainGroup.set_opacity(0);
 
-        this._stage.connect('key-press-event',
-                            Lang.bind(this, this._onStageKeyPressEvent));
+        this._gtkWindow.connect('key-press-event',
+                               Lang.bind(this, this._onKeyPressEvent));
+
         this._stage.connect('button-press-event',
                             Lang.bind(this, this._onButtonPressEvent));
         this._stage.connect('motion-event',
@@ -174,17 +175,19 @@ MainWindow.prototype = {
         this._clearAndQuit();
     },
 
-    _onStageKeyPressEvent : function(actor, event) {
-        let key = event.get_key_symbol();
+    _onKeyPressEvent : function(actor, event) {
+        let key = event.get_keyval()[1];
 
-        if (key == Clutter.KEY_Escape ||
-            key == Clutter.KEY_space ||
-            key == Clutter.KEY_q)
+        if (key == Gdk.KEY_Escape ||
+            key == Gdk.KEY_space ||
+            key == Gdk.KEY_q)
             this._fadeOutWindow();
 
-        if (key == Clutter.KEY_f ||
-            key == Clutter.KEY_F11)
+        if (key == Gdk.KEY_f ||
+            key == Gdk.KEY_F11)
             this.toggleFullScreen();
+
+        return false;
     },
 
     _onButtonPressEvent : function(actor, event) {


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