From 6659bd63620e03245dfcc5a6129c95d242a4acbd Mon Sep 17 00:00:00 2001 From: Seungha Yang Date: Fri, 19 Apr 2024 21:17:17 +0900 Subject: [PATCH] d3d12videosink: Handle external HWND's mouse/keyboard events OS will not propagate the event to child HWND if it's handled by the parent. Thus, navigation event should be handled by parent HWND's event handler. Part-of: --- .../gst-plugins-bad/sys/d3d12/gstd3d12window.cpp | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/subprojects/gst-plugins-bad/sys/d3d12/gstd3d12window.cpp b/subprojects/gst-plugins-bad/sys/d3d12/gstd3d12window.cpp index afe0b46278..78bfb21099 100644 --- a/subprojects/gst-plugins-bad/sys/d3d12/gstd3d12window.cpp +++ b/subprojects/gst-plugins-bad/sys/d3d12/gstd3d12window.cpp @@ -872,6 +872,21 @@ sub_class_proc (HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam) priv->hwnd_cond.notify_all (); break; } + case WM_KEYDOWN: + case WM_KEYUP: + if (priv->enable_navigation) + gst_d3d12_window_on_key_event (self, msg, wparam, lparam); + break; + case WM_LBUTTONDOWN: + case WM_LBUTTONUP: + case WM_RBUTTONDOWN: + case WM_RBUTTONUP: + case WM_MBUTTONDOWN: + case WM_MBUTTONUP: + case WM_MOUSEMOVE: + if (priv->enable_navigation) + gst_d3d12_window_on_mouse_event (self, msg, wparam, lparam); + break; default: break; }