aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--driver/multitouch.c8
-rw-r--r--include/gestures.h2
-rw-r--r--src/gestures.c4
3 files changed, 14 insertions, 0 deletions
diff --git a/driver/multitouch.c b/driver/multitouch.c
index 99f1484..a083adc 100644
--- a/driver/multitouch.c
+++ b/driver/multitouch.c
@@ -261,6 +261,14 @@ static void handle_gestures(LocalDevicePtr local,
foreach_bit(i, gs->tapmask)
tickle_button(local, i + 1);
}
+ if (GETBIT(gs->type, GS_VSWIPE4)) {
+ int step = 1 + vswipe_fraction * get_cap_ysize(caps);
+ button_scroll(local, 16, 17, &vswipe, step, gs->dy);
+ }
+ if (GETBIT(gs->type, GS_HSWIPE4)) {
+ int step = 1 + hswipe_fraction * get_cap_xsize(caps);
+ button_scroll(local, 18, 19, &hswipe, step, gs->dx);
+ }
}
/* called for each full received packet from the touchpad */
diff --git a/include/gestures.h b/include/gestures.h
index 6bc92cd..b512121 100644
--- a/include/gestures.h
+++ b/include/gestures.h
@@ -33,6 +33,8 @@
#define GS_SCALE 6
#define GS_ROTATE 7
#define GS_TAP 8
+#define GS_VSWIPE4 9
+#define GS_HSWIPE4 10
struct Gestures {
bitmask_t type, btmask, btdata;
diff --git a/src/gestures.c b/src/gestures.c
index 735e77c..cc95e9b 100644
--- a/src/gestures.c
+++ b/src/gestures.c
@@ -157,12 +157,16 @@ static void extract_movement(struct Gestures *gs, struct MTouch* mt)
SETBIT(gs->type, GS_HSCROLL);
if (nmove == 3)
SETBIT(gs->type, GS_HSWIPE);
+ if (nmove == 4)
+ SETBIT(gs->type, GS_HSWIPE4);
}
if (abs(gs->dy) > abs(gs->dx)) {
if (nmove == 2)
SETBIT(gs->type, GS_VSCROLL);
if (nmove == 3)
SETBIT(gs->type, GS_VSWIPE);
+ if (nmove == 4)
+ SETBIT(gs->type, GS_VSWIPE4);
}
}
}