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:
@@ -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);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user