| author | Michael Stahl <mstahl@redhat.com> | 2012-08-21 22:19:42 (GMT) |
|---|---|---|
| committer | Michael Stahl <mstahl@redhat.com> | 2012-08-21 22:34:52 (GMT) |
| commit | 601bfe2ce3113719b2f8edaba2ccb6b630051a9a (patch) (side-by-side diff) | |
| tree | 743f83d9596ab0382ea8c1121fcf78dec63484f9 | |
| parent | cd0046bca0691fdca45a030903b7cde3bfee544c (diff) | |
| download | core-601bfe2ce3113719b2f8edaba2ccb6b630051a9a.zip core-601bfe2ce3113719b2f8edaba2ccb6b630051a9a.tar.gz | |
fdo#51777: add a hack for 1 twip DOUBLE borders:
Arguably such annoyingly thin double borders don't make much sense
anyway, because they're essentially 2 hairlines with ~no space between,
but unfortunately older LO versions are able to create them;
since the refactoring in 2d045cdb69176b280812dda0b813371cf1ac72e2,
which changed the BorderWidthImpl::Get* methods to return 0 due to
rounding, they were ignored at least in the HTML import, which is a
regression.
So add a special purpose hack that essentially rounds up the first line
to 1 but not the other lines so the visual result is a hairline single
border.
Change-Id: I20ac4675bcf67ea58a6931a40bff3605390e9c0d
| -rw-r--r-- | svtools/source/control/ctrlbox.cxx | 4 | ||||
| -rw-r--r-- | sw/source/filter/html/htmltab.cxx | 3 |
2 files changed, 5 insertions, 2 deletions
diff --git a/svtools/source/control/ctrlbox.cxx b/svtools/source/control/ctrlbox.cxx index ca70c0e..96780a1 100644 --- a/svtools/source/control/ctrlbox.cxx +++ b/svtools/source/control/ctrlbox.cxx @@ -328,6 +328,10 @@ long BorderWidthImpl::GetLine1( long nWidth ) const result = std::max<long>(0, static_cast<long>((m_nRate1 * nWidth) + 0.5) - (nConstant2 + nConstantD)); + if (result == 0 && m_nRate1 > 0.0 && nWidth > 0) + { // fdo#51777: hack to essentially treat 1 twip DOUBLE border + result = 1; // as 1 twip SINGLE border + } } return result; } diff --git a/sw/source/filter/html/htmltab.cxx b/sw/source/filter/html/htmltab.cxx index d23c729..d7e117d 100644 --- a/sw/source/filter/html/htmltab.cxx +++ b/sw/source/filter/html/htmltab.cxx @@ -2072,8 +2072,7 @@ void HTMLTable::SetBorders() sal_uInt16 HTMLTable::GetBorderWidth( const SvxBorderLine& rBLine, sal_Bool bWithDistance ) const { - sal_uInt16 nBorderWidth = rBLine.GetOutWidth() + rBLine.GetInWidth() + - rBLine.GetDistance(); + sal_uInt16 nBorderWidth = rBLine.GetWidth(); if( bWithDistance ) { if( nCellPadding ) |
