From 1b7ca2f46db7ba5d5277e52283325eae24e44d28 Mon Sep 17 00:00:00 2001 From: Henrik Rydberg Date: Fri, 7 Nov 2008 01:02:42 +0100 Subject: safe wrap-around Signed-off-by: Henrik Rydberg --- src/state.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/state.c b/src/state.c index eff9c3e..e5ca1c1 100644 --- a/src/state.c +++ b/src/state.c @@ -1,5 +1,6 @@ #include "state.h" #include +#include /******************************************************/ @@ -75,6 +76,13 @@ void modify_state(struct State *s, /* sort fingers in touching order */ qsort(s->finger, s->nfinger, sizeof(struct FingerState), fincmp); + /* make sure wrap-around does not create very strange effects */ + if (s->lastid > INT_MAX / 2) { + s->lastid = 0; + for (j = 0; j < s->nfinger; j++) + s->finger[j].id = ++s->lastid; + } + /* copy buttons */ for (i = 0; i < DIM_BUTTON; i++) s->button[i] = hw->button[i]; -- cgit v1.2.3