mirror of
https://gitlab.freedesktop.org/wayland/weston
synced 2024-07-21 02:25:36 +00:00
shell: Cancel popups when triggering screensaver
This is part of the fix for bug 72540. We cancel the popup grab when the screensaver kicks in so that the screen unlock dialog can get input events. The bigger problem is in mesa however, where we try to allocate new buffers as cairo-gles2 does a gratuituous (but valid) eglMakeCurrent() as we remove the tooltip or popup-menu. Since we removed the weston_layer with the regular surfaces, EGL blocks waiting for a frame event that never comes. Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=72540
This commit is contained in:
parent
6f394d59a1
commit
27d5fa8922
|
@ -4492,6 +4492,11 @@ idle_handler(struct wl_listener *listener, void *data)
|
|||
{
|
||||
struct desktop_shell *shell =
|
||||
container_of(listener, struct desktop_shell, idle_listener);
|
||||
struct weston_seat *seat;
|
||||
|
||||
wl_list_for_each(seat, &shell->compositor->seat_list, link)
|
||||
if (seat->pointer)
|
||||
popup_grab_end(seat->pointer);
|
||||
|
||||
shell_fade(shell, FADE_OUT);
|
||||
/* lock() is called from shell_fade_done() */
|
||||
|
|
Loading…
Reference in a new issue