Kaydet (Commit) 49fbb60d authored tarafından Ilhan Yesil's avatar Ilhan Yesil Kaydeden (comit) Thorsten Behrens

tdf#116051 Right border visible after hiding neighbour column

Added an else statement to take into account that a hidden column
has a neighboured left column with a right border.

Change-Id: Ia415d422dd2fa305604e48cce55661408b835ea6
Reviewed-on: https://gerrit.libreoffice.org/63326
Tested-by: Jenkins
Reviewed-by: 's avatarKatarina Behrens <Katarina.Behrens@cib.de>
(cherry picked from commit 392729c7)
Reviewed-on: https://gerrit.libreoffice.org/67058Reviewed-by: 's avatarThorsten Behrens <Thorsten.Behrens@CIB.de>
üst 3e447810
...@@ -1060,28 +1060,30 @@ drawinglayer::primitive2d::Primitive2DContainer Array::CreateB2DPrimitiveRange( ...@@ -1060,28 +1060,30 @@ drawinglayer::primitive2d::Primitive2DContainer Array::CreateB2DPrimitiveRange(
basegfx::B2DVector aX(basegfx::utils::getColumn(aCoordinateSystem, 0)); basegfx::B2DVector aX(basegfx::utils::getColumn(aCoordinateSystem, 0));
basegfx::B2DVector aY(basegfx::utils::getColumn(aCoordinateSystem, 1)); basegfx::B2DVector aY(basegfx::utils::getColumn(aCoordinateSystem, 1));
// get needed local values
basegfx::B2DPoint aOrigin(basegfx::utils::getColumn(aCoordinateSystem, 2));
const bool bOverlapX(rCell.mbOverlapX);
const bool bFirstCol(nCol == nFirstCol);
// handle rotation: If cell is rotated, handle lower/right edge inside
// this local geometry due to the created CoordinateSystem already representing
// the needed transformations.
const bool bRotated(rCell.IsRotated());
// Additionally avoid double-handling by suppressing handling when self not rotated,
// but above/left is rotated and thus already handled. Two directly connected
// rotated will paint/create both edges, they might be rotated differently.
const bool bSupressLeft(!bRotated && nCol > nFirstCol && CELL(nCol - 1, nRow).IsRotated());
const bool bSuppressAbove(!bRotated && nRow > nFirstRow && CELL(nCol, nRow - 1).IsRotated());
if(!aX.equalZero() && !aY.equalZero()) if(!aX.equalZero() && !aY.equalZero())
{ {
// get needed local values // additionally needed local values
basegfx::B2DPoint aOrigin(basegfx::utils::getColumn(aCoordinateSystem, 2));
const bool bOverlapX(rCell.mbOverlapX);
const bool bOverlapY(rCell.mbOverlapY); const bool bOverlapY(rCell.mbOverlapY);
const bool bFirstCol(nCol == nFirstCol);
const bool bLastCol(nCol == nLastCol); const bool bLastCol(nCol == nLastCol);
const bool bFirstRow(nRow == nFirstRow); const bool bFirstRow(nRow == nFirstRow);
const bool bLastRow(nRow == nLastRow); const bool bLastRow(nRow == nLastRow);
// handle rotation: If cell is rotated, handle lower/right edge inside
// this local geometry due to the created CoordinateSystem already representing
// the needed transformations.
const bool bRotated(rCell.IsRotated());
// Additionally avoid double-handling by suppressing handling when self not rotated,
// but above/left is rotated and thus already handled. Two directly connected
// rotated will paint/create both edges, they might be rotated differently.
const bool bSuppressAbove(!bRotated && nRow > nFirstRow && CELL(nCol, nRow - 1).IsRotated());
const bool bSupressLeft(!bRotated && nCol > nFirstCol && CELL(nCol - 1, nRow).IsRotated());
// create upper line for this Cell // create upper line for this Cell
if ((!bOverlapY // true for first line in merged cells or cells if ((!bOverlapY // true for first line in merged cells or cells
|| bFirstRow) // true for non_Calc usages of this tooling || bFirstRow) // true for non_Calc usages of this tooling
...@@ -1220,6 +1222,21 @@ drawinglayer::primitive2d::Primitive2DContainer Array::CreateB2DPrimitiveRange( ...@@ -1220,6 +1222,21 @@ drawinglayer::primitive2d::Primitive2DContainer Array::CreateB2DPrimitiveRange(
} }
} }
} }
else
{
// create left line for this Cell
if ((!bOverlapX // true for first column in merged cells or cells
|| bFirstCol) // true for non_Calc usages of this tooling
&& !bSupressLeft) // true when left is not rotated, so edge is already handled (see bRotated)
{
const Style& rLeft(GetCellStyleLeft(nCol, nRow));
if (rLeft.IsUsed())
{
HelperCreateVerticalEntry(*this, rLeft, nCol, nRow, aOrigin, aX, aY, *aData.get(), true, pForceColor);
}
}
}
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment