diff options
author | Kohei Yoshida <kohei.yoshida@collabora.com> | 2014-05-11 19:50:53 -0400 |
---|---|---|
committer | Eike Rathke <erack@redhat.com> | 2014-05-12 10:18:01 +0000 |
commit | b30c08e3dd5e1c20923f66684a893a9c2ede6637 (patch) | |
tree | 09d8495ba091d65ff13cf33e0d80d69d34dccfd4 | |
parent | 709f06eb261b3225cd4b56a7efb8e2d591909960 (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>
-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; |