shell: Only assign focus on click if there is a pointer focus surface

If we don't have a background image from the desktop-shell client or the
pointer for some other reason doesn't have a focus we trigger a
segfault as we try to deref the seat->pointer->focus NULL pointer.

https://bugs.freedesktop.org/show_bug.cgi?id=73066
This commit is contained in:
Kristian Høgsberg 2014-01-01 16:28:32 -08:00
parent 8662349394
commit 7c4f6cc145
2 changed files with 3 additions and 1 deletions

View file

@ -765,7 +765,7 @@ background_configure(void *data,
struct background *background =
(struct background *) window_get_user_data(window);
widget_schedule_resize(background->widget, width, height);
widget_schedule_resize(background->widget, width - 256, height);
}
static void

View file

@ -4216,6 +4216,8 @@ click_to_activate_binding(struct weston_seat *seat, uint32_t time, uint32_t butt
{
if (seat->pointer->grab != &seat->pointer->default_grab)
return;
if (seat->pointer->focus == NULL)
return;
activate_binding(seat, data, seat->pointer->focus->surface);
}