sd/source/console/AccessibleFocusManager.cxx |    6 +++---
 sd/source/console/AccessibleFocusManager.hxx |    4 ++--
 sd/source/console/AccessibleNotes.cxx        |    2 +-
 sd/source/console/AccessibleObject.cxx       |    4 ++--
 sd/source/console/PresenterAccessibility.cxx |    6 +++---
 5 files changed, 11 insertions(+), 11 deletions(-)

New commits:
commit 28137ea6c03bda3e2b1d8a667850b0aedba452e0
Author:     Noel Grandin <noel.gran...@collabora.co.uk>
AuthorDate: Mon Jun 30 13:02:19 2025 +0200
Commit:     Noel Grandin <noel.gran...@collabora.co.uk>
CommitDate: Tue Jul 1 08:14:29 2025 +0200

    no need to hold AccessibleFocusManager by shared_ptr
    
    there is only one instance, and only one reference to it
    
    Change-Id: I0b8c57b758d15a3c38d5014f999a21f43389b1c8
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/187204
    Tested-by: Jenkins
    Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk>

diff --git a/sd/source/console/AccessibleFocusManager.cxx 
b/sd/source/console/AccessibleFocusManager.cxx
index 347e184b4c79..ff686a238b88 100644
--- a/sd/source/console/AccessibleFocusManager.cxx
+++ b/sd/source/console/AccessibleFocusManager.cxx
@@ -20,15 +20,15 @@
 #include "AccessibleFocusManager.hxx"
 #include "AccessibleObject.hxx"
 
-std::shared_ptr<AccessibleFocusManager> AccessibleFocusManager::mpInstance;
+std::unique_ptr<AccessibleFocusManager> AccessibleFocusManager::mpInstance;
 
-std::shared_ptr<AccessibleFocusManager> const & 
AccessibleFocusManager::Instance()
+AccessibleFocusManager & AccessibleFocusManager::Instance()
 {
     if ( ! mpInstance)
     {
         mpInstance.reset(new AccessibleFocusManager());
     }
-    return mpInstance;
+    return *mpInstance;
 }
 
 AccessibleFocusManager::AccessibleFocusManager()
diff --git a/sd/source/console/AccessibleFocusManager.hxx 
b/sd/source/console/AccessibleFocusManager.hxx
index cdfd24ba342b..63c7be9eda1e 100644
--- a/sd/source/console/AccessibleFocusManager.hxx
+++ b/sd/source/console/AccessibleFocusManager.hxx
@@ -32,7 +32,7 @@ class AccessibleObject;
 class AccessibleFocusManager
 {
 public:
-    static std::shared_ptr<AccessibleFocusManager> const & Instance();
+    static AccessibleFocusManager & Instance();
 
     void AddFocusableObject (const ::rtl::Reference<AccessibleObject>& 
rpObject);
     void RemoveFocusableObject (const ::rtl::Reference<AccessibleObject>& 
rpObject);
@@ -42,7 +42,7 @@ public:
     ~AccessibleFocusManager();
 
 private:
-    static std::shared_ptr<AccessibleFocusManager> mpInstance;
+    static std::unique_ptr<AccessibleFocusManager> mpInstance;
     ::std::vector<rtl::Reference<AccessibleObject> > maFocusableObjects;
     bool m_isInDtor = false;
 
diff --git a/sd/source/console/AccessibleNotes.cxx 
b/sd/source/console/AccessibleNotes.cxx
index b17fe7883b17..7733afa20721 100644
--- a/sd/source/console/AccessibleNotes.cxx
+++ b/sd/source/console/AccessibleNotes.cxx
@@ -126,7 +126,7 @@ void AccessibleNotes::NotifyCaretChange (
     const sal_Int32 nNewParagraphIndex,
     const sal_Int32 nNewCharacterIndex)
 {
-    AccessibleFocusManager::Instance()->FocusObject(
+    AccessibleFocusManager::Instance().FocusObject(
         nNewParagraphIndex >= 0
             ? maChildren[nNewParagraphIndex]
             : this);
diff --git a/sd/source/console/AccessibleObject.cxx 
b/sd/source/console/AccessibleObject.cxx
index 5af9d672ac41..0542890a8c65 100644
--- a/sd/source/console/AccessibleObject.cxx
+++ b/sd/source/console/AccessibleObject.cxx
@@ -38,7 +38,7 @@ AccessibleObject::AccessibleObject(
 
 void AccessibleObject::LateInitialization()
 {
-    AccessibleFocusManager::Instance()->AddFocusableObject(this);
+    AccessibleFocusManager::Instance().AddFocusableObject(this);
 }
 
 void AccessibleObject::SetWindow (
@@ -76,7 +76,7 @@ void SAL_CALL AccessibleObject::disposing()
 {
     OAccessible::disposing();
 
-    AccessibleFocusManager::Instance()->RemoveFocusableObject(this);
+    AccessibleFocusManager::Instance().RemoveFocusableObject(this);
     SetWindow(nullptr, nullptr);
 }
 
diff --git a/sd/source/console/PresenterAccessibility.cxx 
b/sd/source/console/PresenterAccessibility.cxx
index e98b251dd320..34600db26d60 100644
--- a/sd/source/console/PresenterAccessibility.cxx
+++ b/sd/source/console/PresenterAccessibility.cxx
@@ -228,7 +228,7 @@ void PresenterAccessible::NotifyCurrentSlideChange ()
 
     // Play some focus ping-pong to trigger AT tools.
     //AccessibleFocusManager::Instance()->FocusObject(this);
-    AccessibleFocusManager::Instance()->FocusObject(mpAccessiblePreview);
+    AccessibleFocusManager::Instance().FocusObject(mpAccessiblePreview);
 }
 
 void SAL_CALL PresenterAccessible::disposing()
@@ -287,13 +287,13 @@ void SAL_CALL PresenterAccessible::focusGained (const 
css::awt::FocusEvent&)
 {
     SAL_INFO("sdext.presenter", __func__ << ": 
PresenterAccessible::focusGained at " << this
         << " and window " << mxMainWindow.get());
-    AccessibleFocusManager::Instance()->FocusObject(this);
+    AccessibleFocusManager::Instance().FocusObject(this);
 }
 
 void SAL_CALL PresenterAccessible::focusLost (const css::awt::FocusEvent&)
 {
     SAL_INFO("sdext.presenter", __func__ << ": PresenterAccessible::focusLost 
at " << this);
-    AccessibleFocusManager::Instance()->FocusObject(nullptr);
+    AccessibleFocusManager::Instance().FocusObject(nullptr);
 }
 
 //----- XEventListener ----------------------------------------------------

Reply via email to