sw/source/ui/table/tabledlg.cxx | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-)
New commits: commit 04e5cc16c48b5eaf69cd275825b957a504904187 Author: Caolán McNamara <caol...@redhat.com> AuthorDate: Tue Jul 28 15:14:07 2020 +0100 Commit: Caolán McNamara <caol...@redhat.com> CommitDate: Tue Jul 28 20:28:32 2020 +0200 tdf#135021 if the input width is changed, rerun the callbacks if the widget triggering the change is the width widget and this callback sets a different value to the width widget, then rerun the callback using the width widget to end up in a state consistent with the width widget value. gtk already resends value-changed if the value of the widget changed during the callback so this ends up aligning the vcl behaviour to the gtk one which appears desirable in this case Change-Id: I32d0e1bb17190279efc552781851e5a18b417154 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/99635 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caol...@redhat.com> diff --git a/sw/source/ui/table/tabledlg.cxx b/sw/source/ui/table/tabledlg.cxx index 9844f96a2321..741dff825c85 100644 --- a/sw/source/ui/table/tabledlg.cxx +++ b/sw/source/ui/table/tabledlg.cxx @@ -299,7 +299,6 @@ void SwFormatTablePage::ModifyHdl(const weld::MetricSpinButton& rEdit) nLeft = 0; nCurWidth = pTableData->GetSpace(); } - } } //centered: change both sides equally @@ -357,10 +356,22 @@ void SwFormatTablePage::ModifyHdl(const weld::MetricSpinButton& rEdit) nCurWidth = pTableData->GetSpace() - nLeft - nRight; } } - if (nCurWidth != nPrevWidth ) - m_xWidthMF->set_value( m_xWidthMF->NormalizePercent( nCurWidth ), FieldUnit::TWIP ); + m_xRightMF->set_value( m_xRightMF->NormalizePercent( nRight ), FieldUnit::TWIP ); m_xLeftMF->set_value( m_xLeftMF->NormalizePercent( nLeft ), FieldUnit::TWIP ); + + if (nCurWidth != nPrevWidth ) + { + m_xWidthMF->set_value(m_xWidthMF->NormalizePercent(nCurWidth), FieldUnit::TWIP); + + // tdf#135021 if the user changed the width spinbutton, and in this + // ModifyHdl we changed the value of that width spinbutton, then rerun + // the ModifyHdl on the replaced value so the left/right/width value + // relationships are consistent + if (&rEdit == m_xWidthMF->get()) + ModifyHdl(rEdit); + } + bModified = true; } _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits