sw/source/uibase/utlui/bookctrl.cxx | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-)
New commits: commit 3772101c2c87e6ccf183d7e4aa0aede84f6d0b6c Author: Caolán McNamara <caolan.mcnam...@collabora.com> AuthorDate: Thu May 22 12:48:21 2025 +0100 Commit: Adolfo Jayme Barrientos <fit...@ubuntu.com> CommitDate: Thu May 22 23:40:17 2025 +0200 Resolves: tdf#164226 escape mnemonic's in menu entries Change-Id: Ia93be72d79a1660b9c9fe17d25763aec3d8a9bba Reviewed-on: https://gerrit.libreoffice.org/c/core/+/185661 Tested-by: Jenkins Reviewed-by: Adolfo Jayme Barrientos <fit...@ubuntu.com> diff --git a/sw/source/uibase/utlui/bookctrl.cxx b/sw/source/uibase/utlui/bookctrl.cxx index 0352934ece4c..c71e0541a55a 100644 --- a/sw/source/uibase/utlui/bookctrl.cxx +++ b/sw/source/uibase/utlui/bookctrl.cxx @@ -79,6 +79,11 @@ void SwBookmarkControl::Command( const CommandEvent& rCEvt ) if (!pViewFrm) return; + ::tools::Rectangle aRect(rCEvt.GetMousePosPixel(), Size(1, 1)); + weld::Window* pParent = weld::GetPopupParent(GetStatusBar(), aRect); + if (!pParent) + return; + std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(nullptr, u"modules/swriter/ui/bookmarkmenu.ui"_ustr)); std::unique_ptr<weld::Menu> xPopup(xBuilder->weld_menu(u"menu"_ustr)); @@ -92,13 +97,11 @@ void SwBookmarkControl::Command( const CommandEvent& rCEvt ) { if(IDocumentMarkAccess::MarkType::BOOKMARK == IDocumentMarkAccess::GetType(**ppBookmark)) { - xPopup->append(OUString::number(nPopupId), (*ppBookmark)->GetName()); + xPopup->append(OUString::number(nPopupId), pParent->escape_ui_str((*ppBookmark)->GetName())); aBookmarkIdx[nPopupId] = o3tl::narrowing<sal_uInt16>(ppBookmark - ppBookmarkStart); nPopupId++; } } - ::tools::Rectangle aRect(rCEvt.GetMousePosPixel(), Size(1, 1)); - weld::Window* pParent = weld::GetPopupParent(GetStatusBar(), aRect); OUString sResult = xPopup->popup_at_rect(pParent, aRect); if (!sResult.isEmpty()) {