Fix surface_pong when a seat doesn't have a pointer
authorHardening <rdp.effort@gmail.com>
Fri, 17 May 2013 16:07:41 +0000 (18:07 +0200)
committerKristian Høgsberg <krh@bitplanet.net>
Fri, 17 May 2013 20:30:39 +0000 (16:30 -0400)
This patch fixes a crash with the surface_pong when one of the
seats doesn't have a pointer. This was the case with the RDP compositor
that use a fake seat with no mouse or keyboard.

src/shell.c

index 316cfdc..f5d5bff 100644 (file)
@@ -1465,8 +1465,10 @@ shell_surface_pong(struct wl_client *client, struct wl_resource *resource,
 
        if (shsurf->ping_timer->serial == serial) {
                shsurf->unresponsive = 0;
-               wl_list_for_each(seat, &ec->seat_list, link)
-                       end_busy_cursor(shsurf, seat->pointer);
+               wl_list_for_each(seat, &ec->seat_list, link) {
+                       if(seat->pointer)
+                               end_busy_cursor(shsurf, seat->pointer);
+               }
                ping_timer_destroy(shsurf);
        }
 }