From 5a84d0ece0af652f3453088e1b2524c36730dff7 Mon Sep 17 00:00:00 2001 From: root Date: Mon, 28 Dec 2015 11:06:03 +0000 Subject: first commit --- .../marek-e96436b2a69bf3f8e9f85c5dd4acfd203286561e | 65 ++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 master/marek-e96436b2a69bf3f8e9f85c5dd4acfd203286561e (limited to 'master/marek-e96436b2a69bf3f8e9f85c5dd4acfd203286561e') diff --git a/master/marek-e96436b2a69bf3f8e9f85c5dd4acfd203286561e b/master/marek-e96436b2a69bf3f8e9f85c5dd4acfd203286561e new file mode 100644 index 0000000..8e0f796 --- /dev/null +++ b/master/marek-e96436b2a69bf3f8e9f85c5dd4acfd203286561e @@ -0,0 +1,65 @@ +diff --git a/src/gestures.c b/src/gestures.c +index 9ed2273..c728f10 100644 +--- a/src/gestures.c ++++ b/src/gestures.c +@@ -37,21 +37,20 @@ void extract_mouse(struct Gestures *gs, struct MTouch* mt) + { + static int tracking_id = -1; + +- if (mt->prev_state.nfinger == 0 && mt->state.nfinger == 1) { +- // pressed exactly one finger ++ if (tracking_id == -1) { ++ // looking for lmb down + +- // lmb pressed +- tracking_id = mt->state.finger[0].tracking_id; +- gs->posx = mt->state.finger[0].position_x; +- gs->posy = mt->state.finger[0].position_y; +- SETBIT(gs->btmask, MT_BUTTON_LEFT); +- SETBIT(gs->btdata, MT_BUTTON_LEFT); +- mt->mem.btdata = BITMASK(MT_BUTTON_LEFT); ++ if (mt->state.nfinger == 1) { ++ // lmb pressed + +- return; +- } +- +- if (GETBIT(mt->mem.btdata, MT_BUTTON_LEFT)) { ++ tracking_id = mt->state.finger[0].tracking_id; ++ gs->posx = mt->state.finger[0].position_x; ++ gs->posy = mt->state.finger[0].position_y; ++ SETBIT(gs->btmask, MT_BUTTON_LEFT); ++ SETBIT(gs->btdata, MT_BUTTON_LEFT); ++ mt->mem.btdata = BITMASK(MT_BUTTON_LEFT); ++ } ++ } else { + // lmb is pressed + + const struct FingerState *finger_state = find_finger(&mt->state, tracking_id); +diff --git a/src/mtouch.c b/src/mtouch.c +index a6b96b8..388d68e 100644 +--- a/src/mtouch.c ++++ b/src/mtouch.c +@@ -43,6 +43,10 @@ int open_mtouch(struct MTouch *mt, int fd) + init_mtstate(&mt->prev_state); + init_mtstate(&mt->state); + init_memory(&mt->mem); ++ ++ mtdev_set_abs_fuzz(&mt->dev, ABS_MT_POSITION_X, 0); ++ mtdev_set_abs_fuzz(&mt->dev, ABS_MT_POSITION_Y, 0); ++ + if (use_grab) { + SYSCALL(ret = ioctl(fd, EVIOCGRAB, 1)); + if (ret) +@@ -74,9 +78,9 @@ int read_packet(struct MTouch *mt, int fd) + if (ret <= 0) + return ret; + extract_mtstate(&mt->state, &mt->hs, &mt->caps); +-#if 0 ++//#if 0 + output_mtstate(&mt->state); +-#endif ++//#endif + refresh_memory(&mt->mem, &mt->prev_state, &mt->state, &mt->caps); + #if 0 + output_memory(&mt->mem); -- cgit v1.2.3