mirror of
https://gitlab.freedesktop.org/wayland/weston
synced 2024-07-22 03:04:13 +00:00
shell: Fix segment fault when clicking to activate a NULL pointer_focus
This can happen for instance running a toytoolkit application, launching the popup menu and then clicking on a surface that does not belong to the client that create the popup surface.
This commit is contained in:
parent
aa08e2d56d
commit
9c35e6b47d
|
@ -1384,6 +1384,9 @@ click_to_activate_binding(struct wl_input_device *device,
|
|||
struct weston_surface *upper;
|
||||
|
||||
focus = (struct weston_surface *) device->pointer_focus;
|
||||
if (!focus)
|
||||
return;
|
||||
|
||||
upper = container_of(focus->link.prev, struct weston_surface, link);
|
||||
if (focus->link.prev != &compositor->surface_list &&
|
||||
get_shell_surface_type(upper) == SHELL_SURFACE_FULLSCREEN) {
|
||||
|
@ -1392,7 +1395,7 @@ click_to_activate_binding(struct wl_input_device *device,
|
|||
focus = upper;
|
||||
}
|
||||
|
||||
if (state && focus && device->pointer_grab == &device->default_pointer_grab)
|
||||
if (state && device->pointer_grab == &device->default_pointer_grab)
|
||||
activate(compositor->shell, focus, wd, time);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue