summaryrefslogtreecommitdiff
path: root/cui
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2020-02-08 17:10:31 +0000
committerXisco Faulí <xiscofauli@libreoffice.org>2020-02-11 13:35:50 +0100
commit818598e609ad9160af52ae8b02d772ca29f9ad7b (patch)
treeb3be383e8af6613694194d30a97fe99cbc6985ab /cui
parentee094212fd3f3029afd15df07b29aae2c1e36ac9 (diff)
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@libreoffice.org>
Diffstat (limited to 'cui')
-rw-r--r--cui/source/tabpages/align.cxx13
1 files changed, 9 insertions, 4 deletions
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);