diff options
author | Kohei Yoshida <kohei.yoshida@collabora.com> | 2014-05-11 19:50:53 -0400 |
---|---|---|
committer | Andras Timar <andras.timar@collabora.com> | 2014-05-18 22:10:12 +0200 |
commit | 979a1c32f393fd8b21b1b8cc7f986acee1c48e08 (patch) | |
tree | 1ec4592ce255a5178332f7d8705638af4b30f945 /sc | |
parent | 721c4372c0e307fe226e242b2f61b56c304fa952 (diff) |
fdo#78535: Don't process borders of 0 width.
Or they would get drawn for real.
Change-Id: Iec24e70a80ff8aa1ef7512e71249a99243297c4e
(cherry picked from commit 224b235971a01971de626d38ccc8506d0a55771b)
Reviewed-on: https://gerrit.libreoffice.org/9323
Reviewed-by: Eike Rathke <erack@redhat.com>
Tested-by: Eike Rathke <erack@redhat.com>
Diffstat (limited to 'sc')
-rw-r--r-- | sc/source/ui/view/output.cxx | 96 |
1 files changed, 54 insertions, 42 deletions
diff --git a/sc/source/ui/view/output.cxx b/sc/source/ui/view/output.cxx index 1a5cddee00d4..30d2ee81ae19 100644 --- a/sc/source/ui/view/output.cxx +++ b/sc/source/ui/view/output.cxx @@ -1716,50 +1716,62 @@ void ScOutputData::DrawRotatedFrame( const Color* pForceColor ) const svx::frame::Style noStyle; // Horizontal lines - long nUpperRotate = lcl_getRotate( mpDoc, nTab, nX, nY - 1 ); - pProcessor->process( svx::frame::CreateBorderPrimitives( - aPoints[bLayoutRTL?1:0], aPoints[bLayoutRTL?0:1], aTopLine, - svx::frame::Style(), - svx::frame::Style(), - aLeftLine, - svx::frame::Style(), - svx::frame::Style(), - aRightLine, - pForceColor, nUpperRotate, nAttrRotate ) ); - - long nLowerRotate = lcl_getRotate( mpDoc, nTab, nX, nY + 1 ); - pProcessor->process( svx::frame::CreateBorderPrimitives( - aPoints[bLayoutRTL?2:3], aPoints[bLayoutRTL?3:2], aBottomLine, - aLeftLine, - svx::frame::Style(), - svx::frame::Style(), - aRightLine, - svx::frame::Style(), - svx::frame::Style(), - pForceColor, 18000 - nAttrRotate, 18000 - nLowerRotate ) ); + if (aTopLine.Prim() || aTopLine.Secn()) + { + long nUpperRotate = lcl_getRotate( mpDoc, nTab, nX, nY - 1 ); + pProcessor->process( svx::frame::CreateBorderPrimitives( + aPoints[bLayoutRTL?1:0], aPoints[bLayoutRTL?0:1], aTopLine, + svx::frame::Style(), + svx::frame::Style(), + aLeftLine, + svx::frame::Style(), + svx::frame::Style(), + aRightLine, + pForceColor, nUpperRotate, nAttrRotate ) ); + } + + if (aBottomLine.Prim() || aBottomLine.Secn()) + { + long nLowerRotate = lcl_getRotate( mpDoc, nTab, nX, nY + 1 ); + pProcessor->process( svx::frame::CreateBorderPrimitives( + aPoints[bLayoutRTL?2:3], aPoints[bLayoutRTL?3:2], aBottomLine, + aLeftLine, + svx::frame::Style(), + svx::frame::Style(), + aRightLine, + svx::frame::Style(), + svx::frame::Style(), + pForceColor, 18000 - nAttrRotate, 18000 - nLowerRotate ) ); + } // Vertical slanted lines - long nLeftRotate = lcl_getRotate( mpDoc, nTab, nX - 1, nY ); - pProcessor->process( svx::frame::CreateBorderPrimitives( - aPoints[0], aPoints[3], aLeftLine, - aTopLine, - svx::frame::Style(), - svx::frame::Style(), - aBottomLine, - svx::frame::Style(), - svx::frame::Style(), - pForceColor, nAttrRotate, nLeftRotate ) ); - - long nRightRotate = lcl_getRotate( mpDoc, nTab, nX + 1, nY ); - pProcessor->process( svx::frame::CreateBorderPrimitives( - aPoints[1], aPoints[2], aRightLine, - svx::frame::Style(), - svx::frame::Style(), - aTopLine, - svx::frame::Style(), - svx::frame::Style(), - aBottomLine, - pForceColor, 18000 - nRightRotate, 18000 - nAttrRotate ) ); + if (aLeftLine.Prim() || aLeftLine.Secn()) + { + long nLeftRotate = lcl_getRotate( mpDoc, nTab, nX - 1, nY ); + pProcessor->process( svx::frame::CreateBorderPrimitives( + aPoints[0], aPoints[3], aLeftLine, + aTopLine, + svx::frame::Style(), + svx::frame::Style(), + aBottomLine, + svx::frame::Style(), + svx::frame::Style(), + pForceColor, nAttrRotate, nLeftRotate ) ); + } + + if (aRightLine.Prim() || aRightLine.Secn()) + { + long nRightRotate = lcl_getRotate( mpDoc, nTab, nX + 1, nY ); + pProcessor->process( svx::frame::CreateBorderPrimitives( + aPoints[1], aPoints[2], aRightLine, + svx::frame::Style(), + svx::frame::Style(), + aTopLine, + svx::frame::Style(), + svx::frame::Style(), + aBottomLine, + pForceColor, 18000 - nRightRotate, 18000 - nAttrRotate ) ); + } } } nPosX += nColWidth * nLayoutSign; |