compositor: Avoid sending event for invalid point
authorRob Bradford <rob@linux.intel.com>
Wed, 5 Dec 2012 18:47:05 +0000 (18:47 +0000)
committerKristian Høgsberg <krh@bitplanet.net>
Fri, 7 Dec 2012 03:31:50 +0000 (22:31 -0500)
Avoid sending a touch down event using uninitialised surface x/y co-ordinates.
Instead present a log message about this unexpected case.

src/compositor.c

index d62a740..d6e833f 100644 (file)
@@ -2043,6 +2043,13 @@ notify_touch(struct weston_seat *seat, uint32_t time, int touch_id,
                } else if (touch->focus) {
                        es = (struct weston_surface *) touch->focus;
                        weston_surface_from_global_fixed(es, x, y, &sx, &sy);
+               } else {
+                       /* Unexpected condition: We have non-initial touch but
+                        * there is no focused surface.
+                        */
+                       weston_log("touch event received with %d points down"
+                                  "but no surface focused\n", seat->num_tp);
+                       return;
                }
 
                grab->interface->down(grab, time, touch_id, sx, sy);