[gnome-shell] keyboard: Handle touch events
- From: Carlos Garnacho <carlosg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell] keyboard: Handle touch events
- Date: Thu, 24 Jul 2014 17:40:16 +0000 (UTC)
commit a84fb99c0aca9fd6eeb83a270c48113133e89de2
Author: Carlos Garnacho <carlosg gnome org>
Date: Thu Jul 24 18:24:56 2014 +0200
keyboard: Handle touch events
Handle touch events, so that an interacted button locks to a single sequence,
but multiple sequences are free to interact with multiple key buttons.
https://bugzilla.gnome.org/show_bug.cgi?id=733633
js/ui/keyboard.js | 19 +++++++++++++++++++
1 files changed, 19 insertions(+), 0 deletions(-)
---
diff --git a/js/ui/keyboard.js b/js/ui/keyboard.js
index cfce861..3805fb0 100644
--- a/js/ui/keyboard.js
+++ b/js/ui/keyboard.js
@@ -90,6 +90,25 @@ const Key = new Lang.Class({
key.release();
return Clutter.EVENT_PROPAGATE;
}));
+ button.connect('touch-event', Lang.bind(this,
+ function (actor, event) {
+ let device = event.get_device();
+ let sequence = event.get_event_sequence();
+
+ if (!this._touchPressed &&
+ event.type() == Clutter.EventType.TOUCH_BEGIN) {
+ device.sequence_grab(sequence, actor);
+ this._touchPressed = true;
+ key.press();
+ } else if (this._touchPressed &&
+ event.type() == Clutter.EventType.TOUCH_END &&
+ device.sequence_get_grabbed_actor(sequence) == actor) {
+ device.sequence_ungrab(sequence);
+ this._touchPressed = false;
+ key.release();
+ }
+ return Clutter.EVENT_PROPAGATE;
+ }));
return button;
},
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]