gl: win32: Unparent internal window before destroying it
authorXavier Claessens <xavier.claessens@collabora.com>
Mon, 16 May 2016 21:11:53 +0000 (17:11 -0400)
committerTim-Philipp Müller <tim@centricular.com>
Sat, 9 Dec 2017 19:32:19 +0000 (19:32 +0000)
For some reason DestroyWindow() deadlock if it's called from
parent window's KeyPress event.

https://bugzilla.gnome.org/show_bug.cgi?id=766533

gst-libs/gst/gl/win32/gstglwindow_win32.c

index fca2657..2c919cd 100644 (file)
@@ -135,6 +135,8 @@ gst_gl_window_win32_close (GstGLWindow * window)
 
   if (window_win32->internal_win_id) {
     RemoveProp (window_win32->internal_win_id, "gl_window");
+    ShowWindow (window_win32->internal_win_id, SW_HIDE);
+    SetParent (window_win32->internal_win_id, NULL);
     if (!DestroyWindow (window_win32->internal_win_id))
       GST_WARNING ("failed to destroy window %" G_GUINTPTR_FORMAT
           ", 0x%x", (guintptr) window_win32->internal_win_id,