From 80bb7b0861a1e54bfccbe1f0b7d6a7089961b538 Mon Sep 17 00:00:00 2001 From: reuk Date: Tue, 10 Dec 2024 20:36:00 +0000 Subject: [PATCH] ScopedThreadDPIAwarenessSetter: Make moveable --- modules/juce_gui_basics/misc/juce_DropShadower.cpp | 6 +++--- .../native/juce_ScopedThreadDPIAwarenessSetter_windows.h | 2 ++ modules/juce_gui_basics/native/juce_Windowing_windows.cpp | 3 +++ 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/modules/juce_gui_basics/misc/juce_DropShadower.cpp b/modules/juce_gui_basics/misc/juce_DropShadower.cpp index 01e9aee6d1..c4c2f56635 100644 --- a/modules/juce_gui_basics/misc/juce_DropShadower.cpp +++ b/modules/juce_gui_basics/misc/juce_DropShadower.cpp @@ -48,13 +48,13 @@ public: if (comp->isOnDesktop()) { #if JUCE_WINDOWS - const auto scope = [&]() -> std::unique_ptr + const auto scope = [&]() -> std::optional { if (comp != nullptr) if (auto* handle = comp->getWindowHandle()) - return std::make_unique (handle); + return ScopedThreadDPIAwarenessSetter (handle); - return nullptr; + return {}; }(); #endif diff --git a/modules/juce_gui_basics/native/juce_ScopedThreadDPIAwarenessSetter_windows.h b/modules/juce_gui_basics/native/juce_ScopedThreadDPIAwarenessSetter_windows.h index 03c6131297..21f833ae79 100644 --- a/modules/juce_gui_basics/native/juce_ScopedThreadDPIAwarenessSetter_windows.h +++ b/modules/juce_gui_basics/native/juce_ScopedThreadDPIAwarenessSetter_windows.h @@ -40,6 +40,8 @@ class ScopedThreadDPIAwarenessSetter { public: explicit ScopedThreadDPIAwarenessSetter (void* nativeWindow); + ScopedThreadDPIAwarenessSetter (ScopedThreadDPIAwarenessSetter&&) noexcept; + ScopedThreadDPIAwarenessSetter& operator= (ScopedThreadDPIAwarenessSetter&&) noexcept; ~ScopedThreadDPIAwarenessSetter(); private: diff --git a/modules/juce_gui_basics/native/juce_Windowing_windows.cpp b/modules/juce_gui_basics/native/juce_Windowing_windows.cpp index 1e19b9df8c..bad69a372b 100644 --- a/modules/juce_gui_basics/native/juce_Windowing_windows.cpp +++ b/modules/juce_gui_basics/native/juce_Windowing_windows.cpp @@ -619,6 +619,9 @@ ScopedThreadDPIAwarenessSetter::ScopedThreadDPIAwarenessSetter (void* nativeWind ScopedThreadDPIAwarenessSetter::~ScopedThreadDPIAwarenessSetter() = default; +ScopedThreadDPIAwarenessSetter::ScopedThreadDPIAwarenessSetter (ScopedThreadDPIAwarenessSetter&&) noexcept = default; +ScopedThreadDPIAwarenessSetter& ScopedThreadDPIAwarenessSetter::operator= (ScopedThreadDPIAwarenessSetter&&) noexcept = default; + static auto& getScopedDPIAwarenessDisablerFunctions() { struct Functions