From 5e019f2c621c8311ef808b443bd553ddac52e43e Mon Sep 17 00:00:00 2001 From: njpatel <> Date: Tue, 10 Aug 2010 16:13:20 +0100 Subject: Add support for PAN (bzr r424.1.14) --- unity-private/gesture/gesture-dispatcher-xcb-glue.c | 12 +++++++++++- unity-private/gesture/gesture-event.vala | 6 ++++++ 2 files changed, 17 insertions(+), 1 deletion(-) (limited to 'unity-private/gesture') diff --git a/unity-private/gesture/gesture-dispatcher-xcb-glue.c b/unity-private/gesture/gesture-dispatcher-xcb-glue.c index 622c2b88e..1a341fa57 100644 --- a/unity-private/gesture/gesture-dispatcher-xcb-glue.c +++ b/unity-private/gesture/gesture-dispatcher-xcb-glue.c @@ -86,7 +86,7 @@ unity_gesture_xcb_dispatcher_glue_init (GObject *object) mask = calloc (1, sizeof(grail_mask_t) * mask_len); - /* Taps */ + /* Fiddle */ grail_mask_set (mask, GRAIL_TYPE_TAP3); grail_mask_set (mask, GRAIL_TYPE_TAP4); @@ -94,6 +94,10 @@ unity_gesture_xcb_dispatcher_glue_init (GObject *object) grail_mask_set (mask, GRAIL_TYPE_SCALE); grail_mask_set (mask, GRAIL_TYPE_PICK); + /* Pots and */ + grail_mask_set (mask, GRAIL_TYPE_SWIPE); + grail_mask_set (mask, GRAIL_TYPE_BRUSH); + if (set_mask (connection, 0, 0, mask_len, (uint32_t*)mask)) { g_warning ("Unable to initialize gesture dispatcher xcb"); @@ -104,6 +108,7 @@ unity_gesture_xcb_dispatcher_glue_init (GObject *object) source->connection = connection; source->dispatcher = object; source->gesture_event = unity_gesture_event_new (); + source->gesture_event->pan_event = unity_gesture_pan_event_new (); source->gesture_event->pinch_event = unity_gesture_pinch_event_new (); source->gesture_event->tap_event = unity_gesture_tap_event_new (); @@ -168,6 +173,11 @@ unity_gesture_xcb_dispatcher_glue_main_iteration (XCBSource *source) switch (gesture_event->gesture_type) { + case GRAIL_TYPE_SWIPE: + case GRAIL_TYPE_BRUSH: + dispatch_event->type = UNITY_GESTURE_TYPE_PAN; + dispatch_event->fingers = gesture_event->gesture_type == GRAIL_TYPE_SWIPE ? 3 : 4; + break; case GRAIL_TYPE_SCALE: case GRAIL_TYPE_PICK: dispatch_event->type = UNITY_GESTURE_TYPE_PINCH; diff --git a/unity-private/gesture/gesture-event.vala b/unity-private/gesture/gesture-event.vala index cf1d1a701..322f1c17d 100644 --- a/unity-private/gesture/gesture-event.vala +++ b/unity-private/gesture/gesture-event.vala @@ -54,6 +54,7 @@ namespace Unity.Gesture public Window event_window; public Window child_window; + public PanEvent pan_event; public PinchEvent pinch_event; public TapEvent tap_event; @@ -117,6 +118,11 @@ namespace Unity.Gesture } } + public class PanEvent + { + public float delta; + } + public class PinchEvent { public float delta; -- cgit v1.2.3