d3d11videosink: Fixing focus lost on desktop layout change

Watch all message on the window thread, instead of internal window only.
Otherwise, some global window messages, such as desktop layout change,
wouldn't be handled by our window.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3593>
This commit is contained in:
Seungha Yang 2022-12-17 20:04:01 +09:00 committed by GStreamer Marge Bot
parent 331a367f19
commit 7c92ed0bd0

View file

@ -438,8 +438,8 @@ gst_d3d11_window_win32_thread_func (gpointer data)
window->initialized = gst_d3d11_window_win32_create_internal_window (self); window->initialized = gst_d3d11_window_win32_create_internal_window (self);
self->msg_io_channel = /* Watching and dispatching all messages on this thread */
g_io_channel_win32_new_messages ((guintptr) self->internal_hwnd); self->msg_io_channel = g_io_channel_win32_new_messages (0);
self->msg_source = g_io_create_watch (self->msg_io_channel, G_IO_IN); self->msg_source = g_io_create_watch (self->msg_io_channel, G_IO_IN);
g_source_set_callback (self->msg_source, (GSourceFunc) msg_cb, self, NULL); g_source_set_callback (self->msg_source, (GSourceFunc) msg_cb, self, NULL);
g_source_attach (self->msg_source, self->main_context); g_source_attach (self->msg_source, self->main_context);