shell: Only assign focus on touch if there is a touch focus surface

Similar to 7c4f6cc145, if we don't have
a background image from the desktop-shell client or the touch point
for some other reason doesn't hit a surface we trigger a
segfault as we try to deref the seat->touch->focus NULL pointer.

For touch, another problem could be fudgey calibration that ends up
giving touch coordinates outside the output space.

https://bugs.freedesktop.org/show_bug.cgi?id=72839
dev
Kristian Høgsberg 11 years ago
parent 9f7e331a20
commit 0ed6750541
  1. 2
      desktop-shell/shell.c

@ -4229,6 +4229,8 @@ touch_to_activate_binding(struct weston_seat *seat, uint32_t time, void *data)
{ {
if (seat->touch->grab != &seat->touch->default_grab) if (seat->touch->grab != &seat->touch->default_grab)
return; return;
if (seat->touch->focus == NULL)
return;
activate_binding(seat, data, seat->touch->focus->surface); activate_binding(seat, data, seat->touch->focus->surface);
} }

Loading…
Cancel
Save