cui/inc/strings.hrc                           |    2 -
 framework/source/uielement/menubarmanager.cxx |   41 +++++++++++++++++---------
 sw/inc/AccessibilityCheckStrings.hrc          |    2 -
 3 files changed, 30 insertions(+), 15 deletions(-)

New commits:
commit 2d5f12ee874b3bc37531ba6b7baffe05afa5d4e7
Author:     Balazs Varga <balazs.varga.ext...@allotropia.de>
AuthorDate: Thu Jun 12 13:19:44 2025 +0200
Commit:     Xisco Fauli <xiscofa...@libreoffice.org>
CommitDate: Wed Jun 18 10:01:11 2025 +0200

    tdf#160024 - a11y UI - better tautological string for a11y warning
    
    Based on the discussion in the bug ticket.
    
    Change-Id: Id15ecf21c4cd2d37956b12b1fec3735501571da5
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/186416
    Tested-by: Gabor Kelemen <gabor.kelemen.ext...@allotropia.de>
    Reviewed-by: Heiko Tietze <heiko.tie...@documentfoundation.org>
    Tested-by: Jenkins
    (cherry picked from commit 84a992e45b70d2c0c2f9c0c2d79605918ec3727e)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/186575
    Reviewed-by: Xisco Fauli <xiscofa...@libreoffice.org>

diff --git a/cui/inc/strings.hrc b/cui/inc/strings.hrc
index 11ab8effb43a..2e985c59eb31 100644
--- a/cui/inc/strings.hrc
+++ b/cui/inc/strings.hrc
@@ -569,7 +569,7 @@
 #define STR_AVOID_ENDNOTES                          NC_("STR_AVOID_ENDNOTES", 
"Check if the document contains endnotes.")
 #define STR_AVOID_BACKGROUND_IMAGES                 
NC_("STR_AVOID_BACKGROUND_IMAGES", "Check if the document contains background 
images.")
 #define STR_AVOID_NEWLINES_SPACE                    
NC_("STR_AVOID_NEWLINES_SPACE", "Check if document contains new lines to create 
space.")
-#define STR_AVOID_SPACES_SPACE                      
NC_("STR_AVOID_SPACES_SPACE", "Check if document contains extra spaces to 
create space.")
+#define STR_AVOID_SPACES_SPACE                      
NC_("STR_AVOID_SPACES_SPACE", "Check if document contains repeated spaces.")
 #define STR_AVOID_TABS_FORMATTING                   
NC_("STR_AVOID_TABS_FORMATTING", "Check if document contains tabs for 
formatting.")
 #define STR_AVOID_EMPTY_NUM_PARA                    
NC_("STR_AVOID_EMPTY_NUM_PARA", "Check if document contains new empty lines 
between numbered paragraphs.")
 #define STR_HEADINGS_NOT_IN_ORDER                   
NC_("STR_HEADINGS_NOT_IN_ORDER", "Check if the outline levels of all headings 
are in sequential order.")
diff --git a/sw/inc/AccessibilityCheckStrings.hrc 
b/sw/inc/AccessibilityCheckStrings.hrc
index 6c8304f1773b..a5b4a08e1188 100644
--- a/sw/inc/AccessibilityCheckStrings.hrc
+++ b/sw/inc/AccessibilityCheckStrings.hrc
@@ -29,7 +29,7 @@
 #define STR_AVOID_ENDNOTES              NC_("STR_AVOID_ENDNOTES", "Avoid 
endnotes.")
 #define STR_AVOID_BACKGROUND_IMAGES     NC_("STR_AVOID_BACKGROUND_IMAGES", 
"Avoid background images.")
 #define STR_AVOID_NEWLINES_SPACE        NC_("STR_AVOID_NEWLINES_SPACE", "Avoid 
newlines to create space.")
-#define STR_AVOID_SPACES_SPACE          NC_("STR_AVOID_SPACES_SPACE", "Avoid 
spaces to create space.")
+#define STR_AVOID_SPACES_SPACE          NC_("STR_AVOID_SPACES_SPACE", "Avoid 
repeated spaces.")
 #define STR_AVOID_TABS_FORMATTING       NC_("STR_AVOID_TABS_FORMATTING", 
"Avoid using tabs for formatting.")
 #define STR_AVOID_EMPTY_NUM_PARA        NC_("STR_AVOID_EMPTY_NUM_PARA", "Avoid 
new empty lines between numbered paragraphs.")
 #define STR_HEADINGS_NOT_IN_ORDER       NC_("STR_HEADINGS_NOT_IN_ORDER", 
"Outline levels of headings not in sequential order.")
commit f05e8170d288d1fd2c801c4b62154ee95d3f6df3
Author:     Mike Kaganski <mike.kagan...@collabora.com>
AuthorDate: Fri Jun 13 21:44:21 2025 +0500
Commit:     Xisco Fauli <xiscofa...@libreoffice.org>
CommitDate: Wed Jun 18 10:01:01 2025 +0200

    tdf#166996: handle menu commands asynchronously
    
    Instead of doing that command by command, this change tries to do it
    globally, posting user event with the command data; it will run when
    event loop gets to it; the menu gets closed by that time.
    
    Change-Id: Ifdea666be8557a576dd6cd934898343631a3a95e
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/186470
    Tested-by: Jenkins
    Reviewed-by: Mike Kaganski <mike.kagan...@collabora.com>
    (cherry picked from commit e931c4e9399ba96054ed153204627579242a5cc6)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/186543
    Reviewed-by: Xisco Fauli <xiscofa...@libreoffice.org>

diff --git a/framework/source/uielement/menubarmanager.cxx 
b/framework/source/uielement/menubarmanager.cxx
index caa0aaa36ce3..f740121f386c 100644
--- a/framework/source/uielement/menubarmanager.cxx
+++ b/framework/source/uielement/menubarmanager.cxx
@@ -773,11 +773,29 @@ IMPL_LINK_NOARG( MenuBarManager, AsyncSettingsHdl, 
Timer*, void)
     }
 }
 
-IMPL_LINK( MenuBarManager, Select, Menu *, pMenu, bool )
+namespace
+{
+struct MenuExecData
 {
-    URL                     aTargetURL;
+    URL aTargetURL;
     std::vector<beans::PropertyValue> aArgs;
-    Reference< XDispatch >  xDispatch;
+    Reference<XDispatch> xDispatch;
+};
+
+void AsyncMenuExecute(void* /*instance*/, void* data)
+{
+    std::unique_ptr<MenuExecData> pData(static_cast<MenuExecData*>(data));
+    {
+        SolarMutexReleaser aReleaser;
+        pData->xDispatch->dispatch(pData->aTargetURL,
+                                   
comphelper::containerToSequence(pData->aArgs));
+    }
+}
+}
+
+IMPL_LINK( MenuBarManager, Select, Menu *, pMenu, bool )
+{
+    auto pData = std::make_unique<MenuExecData>();
 
     {
         SolarMutexGuard g;
@@ -790,13 +808,13 @@ IMPL_LINK( MenuBarManager, Select, Menu *, pMenu, bool )
             MenuItemHandler* pMenuItemHandler = GetMenuItemHandler( nCurItemId 
);
             if ( pMenuItemHandler && pMenuItemHandler->xMenuItemDispatch.is() )
             {
-                aTargetURL.Complete = pMenuItemHandler->aMenuItemURL;
-                m_xURLTransformer->parseStrict( aTargetURL );
+                pData->aTargetURL.Complete = pMenuItemHandler->aMenuItemURL;
+                m_xURLTransformer->parseStrict( pData->aTargetURL );
 
                 if ( pMenu->GetUserValue( nCurItemId ) )
                 {
                     // addon menu item selected
-                    aArgs.push_back(
+                    pData->aArgs.push_back(
                         comphelper::makePropertyValue(u"Referer"_ustr, 
u"private:user"_ustr));
                 }
 
@@ -806,19 +824,16 @@ IMPL_LINK( MenuBarManager, Select, Menu *, pMenu, bool )
                 const sal_Int16 nKeys
                     = pWindow ? pWindow->GetPointerState().mnState & 
KEY_MODIFIERS_MASK : 0;
                 if (nKeys)
-                    
aArgs.push_back(comphelper::makePropertyValue(u"KeyModifier"_ustr, nKeys));
+                    
pData->aArgs.push_back(comphelper::makePropertyValue(u"KeyModifier"_ustr, 
nKeys));
 
-                xDispatch = pMenuItemHandler->xMenuItemDispatch;
+                pData->xDispatch = pMenuItemHandler->xMenuItemDispatch;
             }
         }
     }
 
-    // tdf#126054 don't let dispatch destroy this until after function 
completes
-    rtl::Reference<MenuBarManager> xKeepAlive(this);
-    if (xDispatch.is())
+    if (pData->xDispatch.is())
     {
-        SolarMutexReleaser aReleaser;
-        xDispatch->dispatch(aTargetURL, 
comphelper::containerToSequence(aArgs));
+        Application::PostUserEvent(LINK_NONMEMBER(nullptr, AsyncMenuExecute), 
pData.release());
     }
 
     if ( !m_bHasMenuBar )

Reply via email to