From 70d0657f0046cb2ae0cc735be34b5cb2063583bc Mon Sep 17 00:00:00 2001 From: ed Date: Tue, 11 May 2021 12:18:49 +0100 Subject: [PATCH] Windows: Only load UIA functions when accessibility is active --- .../native/accessibility/juce_win32_Accessibility.cpp | 10 +++------- .../juce_gui_basics/native/juce_win32_Windowing.cpp | 4 ---- 2 files changed, 3 insertions(+), 11 deletions(-) diff --git a/modules/juce_gui_basics/native/accessibility/juce_win32_Accessibility.cpp b/modules/juce_gui_basics/native/accessibility/juce_win32_Accessibility.cpp index 223144dd97..91e9baadd9 100644 --- a/modules/juce_gui_basics/native/accessibility/juce_win32_Accessibility.cpp +++ b/modules/juce_gui_basics/native/accessibility/juce_win32_Accessibility.cpp @@ -60,6 +60,7 @@ public: ~AccessibilityNativeImpl() { accessibilityElement->invalidateElement(); + --providerCount; if (auto* wrapper = WindowsUIAWrapper::getInstanceWithoutCreating()) { @@ -68,7 +69,7 @@ public: wrapper->disconnectProvider (provider); - if (--providerCount == 0) + if (providerCount == 0) wrapper->disconnectAllProviders(); } } @@ -228,11 +229,6 @@ void AccessibilityHandler::DestroyNativeImpl::operator() (AccessibilityHandler:: //============================================================================== namespace WindowsAccessibility { - void initialiseUIAWrapper() - { - WindowsUIAWrapper::getInstance(); - } - long getUiaRootObjectId() { return static_cast (UiaRootObjectId); @@ -243,7 +239,7 @@ namespace WindowsAccessibility if (isStartingUpOrShuttingDown() || (handler == nullptr || ! isHandlerValid (*handler))) return false; - if (auto* wrapper = WindowsUIAWrapper::getInstanceWithoutCreating()) + if (auto* wrapper = WindowsUIAWrapper::getInstance()) { ComSmartPtr provider; handler->getNativeImplementation()->QueryInterface (IID_PPV_ARGS (provider.resetAndGetPointerAddress())); diff --git a/modules/juce_gui_basics/native/juce_win32_Windowing.cpp b/modules/juce_gui_basics/native/juce_win32_Windowing.cpp index efa415f5a4..a1219fe712 100644 --- a/modules/juce_gui_basics/native/juce_win32_Windowing.cpp +++ b/modules/juce_gui_basics/native/juce_win32_Windowing.cpp @@ -65,7 +65,6 @@ void* getUser32Function (const char*); namespace WindowsAccessibility { - void initialiseUIAWrapper(); long getUiaRootObjectId(); bool handleWmGetObject (AccessibilityHandler*, WPARAM, LPARAM, LRESULT*); void revokeUIAMapEntriesForWindow (HWND); @@ -1380,9 +1379,6 @@ public: parentToAddTo (parent), currentRenderingEngine (softwareRenderingEngine) { - // make sure that the UIA wrapper singleton is loaded - WindowsAccessibility::initialiseUIAWrapper(); - callFunctionIfNotLocked (&createWindowCallback, this); setTitle (component.getName());