[sushi] mainWindow: use GDK for keyboard events
- From: Cosimo Cecchi <cosimoc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [sushi] mainWindow: use GDK for keyboard events
- Date: Mon, 9 Mar 2015 17:46:18 +0000 (UTC)
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]