cui/source/options/treeopt.cxx |   15 ++++++++++-----
 1 file changed, 10 insertions(+), 5 deletions(-)

New commits:
commit 62c0d42e179476da5fcad02722a9d3c6f83ef258
Author:     Caolán McNamara <caol...@redhat.com>
AuthorDate: Wed Dec 2 15:03:01 2020 +0000
Commit:     Caolán McNamara <caol...@redhat.com>
CommitDate: Wed Dec 2 21:06:24 2020 +0100

    tdf#138596 don't destroy SfxItemSet that are still in use
    
    update the existing ones instead
    
    Change-Id: I67fd6c4ecb5d4294efae0262d558281e6840b5dd
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/107031
    Tested-by: Jenkins
    Reviewed-by: Caolán McNamara <caol...@redhat.com>

diff --git a/cui/source/options/treeopt.cxx b/cui/source/options/treeopt.cxx
index 6e822e974c5e..3c8fcdadeff1 100644
--- a/cui/source/options/treeopt.cxx
+++ b/cui/source/options/treeopt.cxx
@@ -724,13 +724,18 @@ IMPL_LINK(OfaTreeOptionsDialog, ApplyHdl_Impl, 
weld::Button&, rButton, void)
         m_xDialog->response(RET_OK);
     else
     {
-        // tdf#137930 rebuild the in and out itemsets
-        // to reflect the current post-apply state
+        // tdf#137930 rebuild the in and out itemsets to reflect the current
+        // post-apply state
         if (pGroupInfo && pGroupInfo->m_pInItemSet)
         {
-            pGroupInfo->m_pInItemSet.reset();
-            pGroupInfo->m_pOutItemSet.reset();
-            InitItemSets(*pGroupInfo);
+            // tdf#138596 seeing as the SfxTabPages keep pointers to the 
m_pInItemSet
+            // we update the contents of the existing SfxItemSets to match
+            // the current settings, rather than create new ones
+            auto xInItemSet = pGroupInfo->m_pShell
+                ? pGroupInfo->m_pShell->CreateItemSet( pGroupInfo->m_nDialogId 
)
+                : CreateItemSet( pGroupInfo->m_nDialogId );
+            pGroupInfo->m_pInItemSet->Set(*xInItemSet, false);
+            pGroupInfo->m_pOutItemSet->ClearItem();
         }
 
         // for the Apply case, now that the settings are saved to config,
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to