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 )