From 1a4e79770fbab3016670dac5515f2e0d7f3fda9f Mon Sep 17 00:00:00 2001 From: cdozdil Date: Sat, 11 Jan 2025 11:49:19 +0300 Subject: [PATCH] fixed fps overlay and gamepad/keyboard inputs issue --- OptiScaler/imgui/imgui_common.cpp | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/OptiScaler/imgui/imgui_common.cpp b/OptiScaler/imgui/imgui_common.cpp index a9042bb7..969b37c6 100644 --- a/OptiScaler/imgui/imgui_common.cpp +++ b/OptiScaler/imgui/imgui_common.cpp @@ -388,7 +388,7 @@ LRESULT ImGuiCommon::WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) return TRUE; } - // SHUFT + DEL - Debug dump + // SHIFT + DEL - Debug dump if (msg == WM_KEYDOWN && wParam == VK_DELETE && (GetKeyState(VK_SHIFT) & 0x8000)) { Config::Instance()->xessDebug = true; @@ -765,7 +765,7 @@ bool ImGuiCommon::RenderMenu() if (!_isInited) return false; - ImGuiIO const& io = ImGui::GetIO(); (void)io; + ImGuiIO& io = ImGui::GetIO(); (void)io; if (!Config::Instance()->MenuScale.has_value()) { @@ -929,13 +929,26 @@ bool ImGuiCommon::RenderMenu() overlayPosition.y = io.DisplaySize.y - winSize.y; if (!_isVisible) + { + if ((io.ConfigFlags & ImGuiConfigFlags_NavNoCaptureKeyboard) == 0) + io.ConfigFlags = ImGuiConfigFlags_NavNoCaptureKeyboard | ImGuiConfigFlags_NoMouse | ImGuiConfigFlags_NoMouseCursorChange | ImGuiConfigFlags_NoKeyboard; + return true; + } } if (!_isVisible) + { + if ((io.ConfigFlags & ImGuiConfigFlags_NavNoCaptureKeyboard) == 0) + io.ConfigFlags = ImGuiConfigFlags_NavNoCaptureKeyboard | ImGuiConfigFlags_NoMouse | ImGuiConfigFlags_NoMouseCursorChange | ImGuiConfigFlags_NoKeyboard; + return false; + } { + if ((io.ConfigFlags & ImGuiConfigFlags_NavEnableKeyboard) == 0) + io.ConfigFlags = ImGuiConfigFlags_NavEnableKeyboard | ImGuiConfigFlags_NavEnableGamepad; + ImGuiWindowFlags flags = 0; flags |= ImGuiWindowFlags_NoSavedSettings; flags |= ImGuiWindowFlags_NoCollapse; @@ -2736,8 +2749,7 @@ void ImGuiCommon::Init(HWND InHwnd) ImGui::StyleColorsDark(); ImGuiIO& io = ImGui::GetIO(); (void)io; - io.ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard; - io.ConfigFlags |= ImGuiConfigFlags_NavEnableGamepad; + io.ConfigFlags = ImGuiConfigFlags_NavEnableKeyboard | ImGuiConfigFlags_NavEnableGamepad; io.MouseDrawCursor = _isVisible; io.WantCaptureKeyboard = _isVisible;