gl: win32: do not call SetParent in release_parent_win_id()

When called from gst_gl_window_win32_close(), internal window
could not exist, and if it does it's going to be destroyed just
after that anyway. Also it causes window_proc() to be called
and crash because it gets a NULL context.

When called from gst_gl_window_win32_set_window_handle() we are
going to set another parent anyway, and it's probably better to
reparent directly instead of passing by a NULL parent which could
cause the internal window to popup briefly.

https://bugzilla.gnome.org/show_bug.cgi?id=749601
This commit is contained in:
Xavier Claessens 2015-05-21 15:30:34 -04:00 committed by Tim-Philipp Müller
parent 1d9ccc2189
commit 6db457a7d9

View file

@ -182,6 +182,7 @@ set_parent_win_id (GstGLWindowWin32 * window_win32)
/* no parent so the internal window needs borders and system menu */
SetWindowLongPtr (window_win32->internal_win_id, GWL_STYLE,
WS_CLIPSIBLINGS | WS_CLIPCHILDREN | WS_OVERLAPPEDWINDOW);
SetParent (window_win32->internal_win_id, NULL);
return;
}
@ -229,7 +230,6 @@ release_parent_win_id (GstGLWindowWin32 * window_win32)
SetWindowLongPtr (window_win32->parent_win_id, GWLP_WNDPROC,
(LONG_PTR) parent_proc);
SetParent (window_win32->internal_win_id, NULL);
RemoveProp (window_win32->parent_win_id, "gl_window_parent_proc");
}