mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-29 11:40:38 +00:00
gl: wayland: Fix hinding the window on close()
When the window is called, we properly destroy all surfaces, which effectively will unmap that surface and should make it disapear on screen, but we also destroy the wl_source, a GSource that is resposibble of dispatching and executing messages to/from the Wayland server. As a side effect, the server never gets the message and the surfaces are "leaked" on the server. We fix this using wl_display_flush() before destroying the wl_source. Fixes #815 Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1226>
This commit is contained in:
parent
88e19f857a
commit
3e69c5546b
1 changed files with 5 additions and 0 deletions
|
@ -469,6 +469,11 @@ gst_gl_window_wayland_egl_close (GstGLWindow * gl_window)
|
|||
|
||||
destroy_surfaces (window_egl);
|
||||
|
||||
/* As we are about to destroy the wl_source, we need to ensure everything
|
||||
* has been sent synchronously, otherwise we will be leaking surfaces on
|
||||
* server, leaving the window visible and unrefreshed on screen. */
|
||||
wl_display_flush (GST_GL_DISPLAY_WAYLAND (gl_window->display)->display);
|
||||
|
||||
g_source_destroy (window_egl->wl_source);
|
||||
g_source_unref (window_egl->wl_source);
|
||||
window_egl->wl_source = NULL;
|
||||
|
|
Loading…
Reference in a new issue