diff --git a/gst-libs/gst/gl/wayland/wayland_event_source.c b/gst-libs/gst/gl/wayland/wayland_event_source.c index 3f9d482ffa..553125efb0 100644 --- a/gst-libs/gst/gl/wayland/wayland_event_source.c +++ b/gst-libs/gst/gl/wayland/wayland_event_source.c @@ -151,8 +151,12 @@ wayland_event_source_check (GSource * base) source->reading = FALSE; - if (wl_display_read_events (source->display) == 0) - return TRUE; + if (source->pfd.revents & G_IO_IN) { + if (wl_display_read_events (source->display) == 0) + return TRUE; + } else { + wl_display_cancel_read (source->display); + } return FALSE; }