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())
     {

Reply via email to