[Libreoffice-commits] core.git: Branch 'libreoffice-6-4-1' - cui/source

Caolán McNamara (via logerrit) logerrit at kemper.freedesktop.org
Wed Feb 19 13:13:43 UTC 2020


 cui/source/tabpages/align.cxx |   13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

New commits:
commit e5d027bac2255eb57bb040d97d8e55a45d6e91d9
Author:     Caolán McNamara <caolanm at redhat.com>
AuthorDate: Sat Feb 8 17:10:31 2020 +0000
Commit:     Christian Lohmaier <lohmaier+LibreOffice at googlemail.com>
CommitDate: Wed Feb 19 14:13:12 2020 +0100

    Resolves: tdf#130486 setting distributed results that justified cannot be set
    
    Change-Id: If80c935b7e33b5c7146eb562daf2303688160653
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/88274
    Tested-by: Jenkins
    Reviewed-by: Xisco Faulí <xiscofauli at libreoffice.org>
    (cherry picked from commit 818598e609ad9160af52ae8b02d772ca29f9ad7b)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/88396
    Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice at googlemail.com>
    Tested-by: Christian Lohmaier <lohmaier+LibreOffice at googlemail.com>

diff --git a/cui/source/tabpages/align.cxx b/cui/source/tabpages/align.cxx
index cdd87f0cf2a4..24dbf87bf2a3 100644
--- a/cui/source/tabpages/align.cxx
+++ b/cui/source/tabpages/align.cxx
@@ -84,16 +84,19 @@ void lcl_MaybeResetAlignToDistro(
     }
 }
 
-void lcl_SetJustifyMethodToItemSet(SfxItemSet& rSet, sal_uInt16 nWhichJM, const weld::ComboBox& rLB, sal_uInt16 nListPos)
+void lcl_SetJustifyMethodToItemSet(SfxItemSet& rSet, const SfxItemSet& rOldSet, sal_uInt16 nWhichJM, const weld::ComboBox& rLB, sal_uInt16 nListPos)
 {
     SvxCellJustifyMethod eJM = SvxCellJustifyMethod::Auto;
     if (rLB.get_active() == nListPos)
         eJM = SvxCellJustifyMethod::Distribute;
 
     // tdf#129300 If it would create no change, don't force it
-    const SvxJustifyMethodItem& rOldItem = static_cast<const SvxJustifyMethodItem&>(rSet.Get(nWhichJM));
+    const SvxJustifyMethodItem& rOldItem = static_cast<const SvxJustifyMethodItem&>(rOldSet.Get(nWhichJM));
     if (rOldItem.GetValue() == eJM)
+    {
+        rSet.InvalidateItem(nWhichJM);
         return;
+    }
 
     SvxJustifyMethodItem aItem(eJM, nWhichJM);
     rSet.Put(aItem);
@@ -172,6 +175,8 @@ std::unique_ptr<SfxTabPage> AlignmentTabPage::Create(weld::Container* pPage, wel
 
 bool AlignmentTabPage::FillItemSet( SfxItemSet* rSet )
 {
+    const SfxItemSet& rOldSet = GetItemSet();
+
     bool bChanged = SfxTabPage::FillItemSet(rSet);
 
     if (m_xLbHorAlign->get_value_changed_from_saved())
@@ -305,12 +310,12 @@ bool AlignmentTabPage::FillItemSet( SfxItemSet* rSet )
     // method to 'distribute' to distinguish from the normal justification.
 
     sal_uInt16 nWhichHorJM = GetWhich(SID_ATTR_ALIGN_HOR_JUSTIFY_METHOD);
-    lcl_SetJustifyMethodToItemSet(*rSet, nWhichHorJM, *m_xLbHorAlign, ALIGNDLG_HORALIGN_DISTRIBUTED);
+    lcl_SetJustifyMethodToItemSet(*rSet, rOldSet, nWhichHorJM, *m_xLbHorAlign, ALIGNDLG_HORALIGN_DISTRIBUTED);
     if (!bChanged)
         bChanged = HasAlignmentChanged(*rSet, nWhichHorJM);
 
     sal_uInt16 nWhichVerJM = GetWhich(SID_ATTR_ALIGN_VER_JUSTIFY_METHOD);
-    lcl_SetJustifyMethodToItemSet(*rSet, nWhichVerJM, *m_xLbVerAlign, ALIGNDLG_VERALIGN_DISTRIBUTED);
+    lcl_SetJustifyMethodToItemSet(*rSet, rOldSet, nWhichVerJM, *m_xLbVerAlign, ALIGNDLG_VERALIGN_DISTRIBUTED);
     if (!bChanged)
         bChanged = HasAlignmentChanged(*rSet, nWhichVerJM);
 


More information about the Libreoffice-commits mailing list