winit-sonoma-fix/src
Victor Berger a3739d6bad
wayland: instantly wake up if events are pending (#1153)
Just before starting to poll/wait on calloop(mio), check if there
are already events pending in the internal buffer of our wayland
event queue. If so, dispatch them and force an instant wakeup from
the polling, in order to behave as if we were instantly woken up by
incoming wayland events.

When using OpenGL, mesa shares our wayland socket, and also reads
from it, especially if vsync is enabled as it'll do blocking reads.
When doing so, it may enqueue events in the internal buffer of our
event queue.

As the socket has been read, mio will thus not notify it to calloop
as read, and thus calloop will not know it needs to dispatch. In some
cases this can lead to some events being delivered much later than
they should. Combined with key repetition this can actually cause some
flooding of the event queue making this effect event worse.

Fixes #1148
2019-09-11 08:28:21 +02:00
..
platform iOS os version checking around certain APIs (#1094) 2019-08-26 18:47:23 -04:00
platform_impl wayland: instantly wake up if events are pending (#1153) 2019-09-11 08:28:21 +02:00
dpi.rs Format everything and add rustfmt to travis (#951) 2019-06-21 11:33:15 -04:00
error.rs Always use f as the argument name for &mut std::fmt::Formatter (#1023) 2019-07-09 17:49:07 -04:00
event.rs Add touch pressure information for touch events on Windows (#1134) 2019-09-09 14:15:49 -04:00
event_loop.rs Do not require T: Clone for EventLoopProxy<T>: Clone (#1086) 2019-08-05 16:51:42 -04:00
icon.rs Always use f as the argument name for &mut std::fmt::Formatter (#1023) 2019-07-09 17:49:07 -04:00
lib.rs iOS: add support for controlling the home indicator, and Exclusive video mode (#1078) 2019-07-31 00:57:31 -06:00
monitor.rs Add exclusive fullscreen mode (#925) 2019-07-29 14:16:14 -04:00
window.rs On Windows, Unset maximized when transforming window (#1014) 2019-08-26 22:07:15 -04:00