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
This commit is contained in:
Kristian Høgsberg 2014-01-02 23:00:11 -08:00
parent 9f7e331a20
commit 0ed6750541

View file

@ -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)
return;
if (seat->touch->focus == NULL)
return;
activate_binding(seat, data, seat->touch->focus->surface);
}