sfx2/inc/templatedefaultview.hxx             |    2 +-
 sfx2/source/control/templatedefaultview.cxx  |    8 +++++++-
 sfx2/source/control/templatedlglocalview.cxx |    1 +
 sfx2/source/dialog/backingwindow.cxx         |    9 +++++++--
 4 files changed, 16 insertions(+), 4 deletions(-)

New commits:
commit cca3498787f5657986eec61411d5b2ae6f1f1098
Author:     Tejas Shukla <[email protected]>
AuthorDate: Sat Jan 10 15:01:24 2026 +0530
Commit:     Heiko Tietze <[email protected]>
CommitDate: Thu Jan 22 08:54:40 2026 +0100

    tdf#138246 Disable edit contextmenu item for built-in templates
    
    Change-Id: Ib263df6e3e798b38e3e75bb597f43dec5c91cc14
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/197335
    Tested-by: Jenkins
    Reviewed-by: Heiko Tietze <[email protected]>

diff --git a/sfx2/inc/templatedefaultview.hxx b/sfx2/inc/templatedefaultview.hxx
index 286d5355c30d..88a42b0152a2 100644
--- a/sfx2/inc/templatedefaultview.hxx
+++ b/sfx2/inc/templatedefaultview.hxx
@@ -23,7 +23,7 @@ public:
 
     virtual bool MouseButtonDown(const MouseEvent& rMEvt) override;
 
-    void createContextMenu();
+    void createContextMenu(const bool bIsInternal);
 
 protected:
     void UpdateColors(const StyleSettings& rSettings) override;
diff --git a/sfx2/source/control/templatedefaultview.cxx 
b/sfx2/source/control/templatedefaultview.cxx
index d4c2d0fb7893..d45196736f59 100644
--- a/sfx2/source/control/templatedefaultview.cxx
+++ b/sfx2/source/control/templatedefaultview.cxx
@@ -75,11 +75,17 @@ bool TemplateDefaultView::MouseButtonDown( const 
MouseEvent& rMEvt )
     return TemplateLocalView::MouseButtonDown(rMEvt);
 }
 
-void TemplateDefaultView::createContextMenu()
+void TemplateDefaultView::createContextMenu(const bool bIsBuiltIn)
 {
     mxContextMenu->clear();
     mxContextMenu->append(u"open"_ustr,SfxResId(STR_OPEN));
     mxContextMenu->append(u"edit"_ustr,SfxResId(STR_EDIT_TEMPLATE));
+
+    if (bIsBuiltIn)
+    {
+        mxContextMenu->set_sensitive(u"edit"_ustr, false);
+    }
+
     deselectItems();
     mpSelectedItem->setSelection(true);
     maItemStateHdl.Call(mpSelectedItem);
diff --git a/sfx2/source/control/templatedlglocalview.cxx 
b/sfx2/source/control/templatedlglocalview.cxx
index 1bd21f0a0a10..f3439c814de8 100644
--- a/sfx2/source/control/templatedlglocalview.cxx
+++ b/sfx2/source/control/templatedlglocalview.cxx
@@ -132,6 +132,7 @@ void TemplateDlgLocalView::createContextMenu(const bool 
bIsDefault, const bool b
     }
     if (bIsBuiltIn)
     {
+        mxContextMenu->set_sensitive(u"edit"_ustr, false);
         mxContextMenu->set_sensitive(u"rename"_ustr, false);
         mxContextMenu->set_sensitive(u"delete"_ustr, false);
     }
diff --git a/sfx2/source/dialog/backingwindow.cxx 
b/sfx2/source/dialog/backingwindow.cxx
index 29a9753e4ec1..bfd021b5ec49 100644
--- a/sfx2/source/dialog/backingwindow.cxx
+++ b/sfx2/source/dialog/backingwindow.cxx
@@ -676,8 +676,13 @@ IMPL_LINK (BackingWindow, MenuSelectHdl, const OUString&, 
rId, void)
 
 IMPL_LINK(BackingWindow, CreateContextMenuHdl, TemplateViewItem*, pItem, void)
 {
-    if (pItem)
-        mxLocalView->createContextMenu();
+    if (!pItem)
+        return;
+
+    bool bIsInternal = TemplateLocalView::IsInternalTemplate(pItem->getPath());
+
+    mxLocalView->createContextMenu(bIsInternal);
+
 }
 
 IMPL_LINK(BackingWindow, OpenTemplateHdl, const OUString&, rTemplatePath, void)

Reply via email to