diff --git a/src/d3d12/D3D12.cpp b/src/d3d12/D3D12.cpp index c436e95e..81de8a86 100644 --- a/src/d3d12/D3D12.cpp +++ b/src/d3d12/D3D12.cpp @@ -30,9 +30,6 @@ LRESULT D3D12::OnWndProc(HWND ahWnd, UINT auMsg, WPARAM awParam, LPARAM alParam) if (d3d12.IsInitialized()) { - if (const auto res = ImGui_ImplWin32_WndProcHandler(ahWnd, auMsg, awParam, alParam)) - return res; - if (d3d12.m_delayedTrapInput) { d3d12.SetTrapInputInImGui(m_delayedTrapInputState); @@ -41,6 +38,9 @@ LRESULT D3D12::OnWndProc(HWND ahWnd, UINT auMsg, WPARAM awParam, LPARAM alParam) if (d3d12.m_trapInputInImGui) // TODO: look into io.WantCaptureMouse and io.WantCaptureKeyboard { + if (const LRESULT res = ImGui_ImplWin32_WndProcHandler(ahWnd, auMsg, awParam, alParam)) + return res; + // ignore mouse & keyboard events if ((auMsg >= WM_MOUSEFIRST && auMsg <= WM_MOUSELAST) || (auMsg >= WM_KEYFIRST && auMsg <= WM_KEYLAST)) return 1; diff --git a/src/d3d12/D3D12_Functions.cpp b/src/d3d12/D3D12_Functions.cpp index 7f848046..e6e6823d 100644 --- a/src/d3d12/D3D12_Functions.cpp +++ b/src/d3d12/D3D12_Functions.cpp @@ -313,7 +313,7 @@ bool D3D12::InitializeImGui(size_t aBuffersCounts) ImGui::GetStyle() = m_styleReference; ImGui::GetStyle().ScaleAllSizes(scaleFromReference); - ImGui::GetIO().ConfigFlags |= ImGuiConfigFlags_NoMouseCursorChange; // Do not modify cursor from ImGui backend + ImGui::GetIO().ConfigFlags |= ImGuiConfigFlags_DockingEnable; if (!ImGui_ImplWin32_Init(m_window.GetWindow())) { diff --git a/src/overlay/Overlay.cpp b/src/overlay/Overlay.cpp index 51a55121..b62a3ec3 100644 --- a/src/overlay/Overlay.cpp +++ b/src/overlay/Overlay.cpp @@ -61,6 +61,8 @@ void Overlay::Update() if (!m_initialized) return; + ImGui::DockSpaceOverViewport(0, ImGui::GetMainViewport(), ImGuiDockNodeFlags_PassthruCentralNode); + if (m_toggled) { if (m_bindings.FirstTimeSetup()) diff --git a/src/sol_imgui/sol_imgui.h b/src/sol_imgui/sol_imgui.h index f1dcbef9..d8539f29 100644 --- a/src/sol_imgui/sol_imgui.h +++ b/src/sol_imgui/sol_imgui.h @@ -2973,6 +2973,7 @@ inline void InitEnums(sol::table luaGlobals) ImGuiWindowFlags_NoFocusOnAppearing, "NoBringToFrontOnFocus", ImGuiWindowFlags_NoBringToFrontOnFocus, "AlwaysVerticalScrollbar", ImGuiWindowFlags_AlwaysVerticalScrollbar, "AlwaysHorizontalScrollbar", ImGuiWindowFlags_AlwaysHorizontalScrollbar, "NoNavInputs", ImGuiWindowFlags_NoNavInputs, "NoNavFocus", ImGuiWindowFlags_NoNavFocus, "UnsavedDocument", ImGuiWindowFlags_UnsavedDocument, "NoNav", ImGuiWindowFlags_NoNav, "NoDecoration", ImGuiWindowFlags_NoDecoration, "NoInputs", ImGuiWindowFlags_NoInputs, + "NoDocking", ImGuiWindowFlags_NoDocking, // [Internal] "ChildWindow", ImGuiWindowFlags_ChildWindow, "Tooltip", ImGuiWindowFlags_Tooltip, "Popup", ImGuiWindowFlags_Popup, "Modal", ImGuiWindowFlags_Modal, "ChildMenu", ImGuiWindowFlags_ChildMenu,