mirror of
https://gitlab.freedesktop.org/wayland/weston
synced 2024-07-22 03:04:13 +00:00
shell: Fix 2 switcher crashes.
In case of no regular window, switcher will crash in switch_next() due to "next == NULL" and in switcher_destroy() due to "switcher->current == NULL".
This commit is contained in:
parent
e7ad5cdcd2
commit
07b2606c7a
|
@ -1840,6 +1840,9 @@ switcher_next(struct switcher *switcher)
|
|||
if (next == NULL)
|
||||
next = first;
|
||||
|
||||
if (next == NULL)
|
||||
return;
|
||||
|
||||
wl_list_remove(&switcher->listener.link);
|
||||
wl_list_insert(next->surface.resource.destroy_listener_list.prev,
|
||||
&switcher->listener.link);
|
||||
|
@ -1871,7 +1874,8 @@ switcher_destroy(struct switcher *switcher, uint32_t time)
|
|||
weston_surface_damage(surface);
|
||||
}
|
||||
|
||||
activate(compositor->shell, switcher->current, device, time);
|
||||
if (switcher->current)
|
||||
activate(compositor->shell, switcher->current, device, time);
|
||||
wl_list_remove(&switcher->listener.link);
|
||||
wl_input_device_end_keyboard_grab(&device->input_device, time);
|
||||
free(switcher);
|
||||
|
|
Loading…
Reference in a new issue