From d5175b6e238bba5e4772b977446bd68dc42e263f Mon Sep 17 00:00:00 2001 From: ed Date: Thu, 10 Jun 2021 16:29:26 +0100 Subject: [PATCH] Windows: Use ScopedThreadDPIAwarenessSetter in keyboard hooks to set correct thread DPI awareness --- .../native/juce_win32_Windowing.cpp | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/modules/juce_gui_basics/native/juce_win32_Windowing.cpp b/modules/juce_gui_basics/native/juce_win32_Windowing.cpp index 0103297b3c..a624953b3d 100644 --- a/modules/juce_gui_basics/native/juce_win32_Windowing.cpp +++ b/modules/juce_gui_basics/native/juce_win32_Windowing.cpp @@ -1963,10 +1963,18 @@ public: static bool offerKeyMessageToJUCEWindow (MSG& m) { if (m.message == WM_KEYDOWN || m.message == WM_KEYUP) + { if (Component::getCurrentlyFocusedComponent() != nullptr) - if (auto* h = getOwnerOfWindow (m.hwnd)) - return m.message == WM_KEYDOWN ? h->doKeyDown (m.wParam) - : h->doKeyUp (m.wParam); + { + if (auto* peer = getOwnerOfWindow (m.hwnd)) + { + ScopedThreadDPIAwarenessSetter threadDpiAwarenessSetter { m.hwnd }; + + return m.message == WM_KEYDOWN ? peer->doKeyDown (m.wParam) + : peer->doKeyUp (m.wParam); + } + } + } return false; }