wlterm doesn't work with current Wayland/Weston; the events are never
sent and the window doesn't come up. We need to flush the display, as
per wl_display_dispatch_pending(3):
To proper integrate the wayland display fd into a main loop, the
client should always call wl_display_dispatch_pending() and then
wl_display_flush() prior to going back to sleep.
Signed-off-by: Ran Benita <ran234@gmail.com>
Signed-off-by: David Herrmann <dh.herrmann@gmail.com>
int ret;
errno = 0;
- if (nonblock)
+ if (nonblock) {
ret = wl_display_dispatch_pending(disp->dp);
- else
+ if (ret != -1)
+ ret = wl_display_flush(disp->dp);
+ } else {
ret = wl_display_dispatch(disp->dp);
+ }
if (ret == -1) {
log_error("error during wayland dispatch (%d): %m", errno);