From 2943ac63fffc535ddac4415870223c73d35ec4ff Mon Sep 17 00:00:00 2001 From: Egor Yusov Date: Sun, 29 Sep 2019 13:21:31 -0700 Subject: Imgui win32 impl: updated event hanlding to avoid modifications to imgui --- Imgui/src/ImGuiImplWin32.cpp | 32 +++++++++++++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) (limited to 'Imgui/src/ImGuiImplWin32.cpp') diff --git a/Imgui/src/ImGuiImplWin32.cpp b/Imgui/src/ImGuiImplWin32.cpp index 647fde3..58f3f6e 100644 --- a/Imgui/src/ImGuiImplWin32.cpp +++ b/Imgui/src/ImGuiImplWin32.cpp @@ -59,7 +59,37 @@ void ImGuiImplWin32::NewFrame() LRESULT ImGuiImplWin32::Win32_ProcHandler(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) { - return ImGui_ImplWin32_WndProcHandler(hwnd, msg, wParam, lParam); + if (ImGui::GetCurrentContext() == NULL) + return 0; + + auto res = ImGui_ImplWin32_WndProcHandler(hwnd, msg, wParam, lParam); + + ImGuiIO& io = ImGui::GetIO(); + switch (msg) + { + case WM_LBUTTONDOWN: case WM_LBUTTONDBLCLK: + case WM_RBUTTONDOWN: case WM_RBUTTONDBLCLK: + case WM_MBUTTONDOWN: case WM_MBUTTONDBLCLK: + case WM_XBUTTONDOWN: case WM_XBUTTONDBLCLK: + case WM_LBUTTONUP: + case WM_RBUTTONUP: + case WM_MBUTTONUP: + case WM_XBUTTONUP: + case WM_MOUSEWHEEL: + case WM_MOUSEHWHEEL: + return io.WantCaptureMouse ? 1 : 0; + + case WM_KEYDOWN: + case WM_SYSKEYDOWN: + case WM_KEYUP: + case WM_SYSKEYUP: + case WM_CHAR: + return io.WantCaptureKeyboard ? 1 : 0; + case WM_SETCURSOR: + return res; + } + + return res; } } -- cgit v1.2.3