input: Ignore touch up events if num_tp is 0
authorKristian Høgsberg <krh@bitplanet.net>
Thu, 9 Jan 2014 06:29:20 +0000 (22:29 -0800)
committerKristian Høgsberg <krh@bitplanet.net>
Thu, 9 Jan 2014 06:29:25 +0000 (22:29 -0800)
This can happen if we start out with one or more fingers on the touch
screen, in which case we didn't get the corresponding down event.

Closes: https://bugs.freedesktop.org/show_bug.cgi?id=73367

src/input.c

index 902cfb8..157066c 100644 (file)
@@ -1488,6 +1488,14 @@ notify_touch(struct weston_seat *seat, uint32_t time, int touch_id,
                grab->interface->motion(grab, time, touch_id, sx, sy);
                break;
        case WL_TOUCH_UP:
+               if (touch->num_tp == 0) {
+                       /* This can happen if we start out with one or
+                        * more fingers on the touch screen, in which
+                        * case we didn't get the corresponding down
+                        * event. */
+                       weston_log("unmatched touch up event\n");
+                       break;
+               }
                weston_compositor_idle_release(ec);
                touch->num_tp--;