chiark / gitweb /
Offsets: In button zone code, cope with negative "pos" values
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 23 Apr 2016 22:19:21 +0000 (23:19 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Tue, 26 Apr 2016 19:42:32 +0000 (20:42 +0100)
Coordinates might be negative, so we need a separate boolean rather
than using -1 as a sentinel.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
src/gestures.c

index 22a94ac..b49ca6e 100644 (file)
@@ -210,10 +210,12 @@ static void buttons_update(struct Gestures* gs,
                }
 
                if (emulate) {
-                       int pos = -1;
+                       int try_zone;
+                       int pos;
 
                        if (cfg->button_zones && earliest >= 0) {
                                pos = ms->touch[earliest].x;
+                               try_zone = 1;
                        }
                        if (cfg->bottom_edge_zones) {
                                int latest_bottom = -1;
@@ -227,11 +229,13 @@ static void buttons_update(struct Gestures* gs,
                                        if (latest_bottom == -1 || timercmp(&ms->touch[i].down, &ms->touch[latest_bottom].down, >))
                                                latest_bottom = i;
                                }
-                               if (latest_bottom >= 0)
+                               if (latest_bottom >= 0) {
                                        pos = ms->touch[latest_bottom].x;
+                                       try_zone = 1;
+                               }
                        }
 
-                       if (pos >= 0) {
+                       if (try_zone) {
                                int zones, left, right;
                                double width;