sc/source/ui/view/output.cxx | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-)
New commits: commit 67c9d3d30308b4353e27eb4a75ba72ad2f6081c3 Author: Tomaž Vajngerl <tomaz.vajng...@collabora.co.uk> AuthorDate: Mon Jan 10 14:43:38 2022 +0900 Commit: Andras Timar <andras.ti...@collabora.com> CommitDate: Thu Jan 13 10:06:26 2022 +0100 sc: fix cond. format icon size, when we work with pixels This is the case when the device is bWorksInPixels is true, which is the case when running LOKit. (cherry picked from commit b59e7800b777332ba3883ff1ab0509ffd58cff2a) Change-Id: If7293d95589f52d46f24bc7254f1eeb6f50729b4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128226 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoff...@gmail.com> Reviewed-by: Andras Timar <andras.ti...@collabora.com> diff --git a/sc/source/ui/view/output.cxx b/sc/source/ui/view/output.cxx index 9948b666eebf..3585908d7e07 100644 --- a/sc/source/ui/view/output.cxx +++ b/sc/source/ui/view/output.cxx @@ -906,7 +906,7 @@ const BitmapEx& getIcon(sc::IconSetBitmapMap & rIconSetBitmapMap, ScIconSetType } void drawIconSets(vcl::RenderContext& rRenderContext, const ScIconSetInfo* pOldIconSetInfo, const tools::Rectangle& rRect, long nOneX, long nOneY, - sc::IconSetBitmapMap & rIconSetBitmapMap) + sc::IconSetBitmapMap & rIconSetBitmapMap, bool bWorksInPixels) { ScIconSetType eType = pOldIconSetInfo->eIconSetType; sal_Int32 nIndex = pOldIconSetInfo->nIconIndex; @@ -915,7 +915,18 @@ void drawIconSets(vcl::RenderContext& rRenderContext, const ScIconSetInfo* pOldI long aHeight = 300; if (pOldIconSetInfo->mnHeight) - aHeight = convertTwipToMm100(pOldIconSetInfo->mnHeight); + { + if (bWorksInPixels) + { + aHeight = rRenderContext.LogicToPixel(Size(0, pOldIconSetInfo->mnHeight), MapMode(MapUnit::MapTwip)).Height(); + if (comphelper::LibreOfficeKit::isActive()) + { + aHeight *= comphelper::LibreOfficeKit::getDPIScale(); + } + } + else + aHeight = convertTwipToMm100(pOldIconSetInfo->mnHeight); + } Size aSize = rIcon.GetSizePixel(); double fRatio = aSize.Width() / aSize.Height(); @@ -930,7 +941,7 @@ void drawIconSets(vcl::RenderContext& rRenderContext, const ScIconSetInfo* pOldI void drawCells(vcl::RenderContext& rRenderContext, boost::optional<Color> const & pColor, const SvxBrushItem* pBackground, boost::optional<Color>& pOldColor, const SvxBrushItem*& pOldBackground, tools::Rectangle& rRect, long nPosX, long nLayoutSign, long nOneX, long nOneY, const ScDataBarInfo* pDataBarInfo, const ScDataBarInfo*& pOldDataBarInfo, const ScIconSetInfo* pIconSetInfo, const ScIconSetInfo*& pOldIconSetInfo, - sc::IconSetBitmapMap & rIconSetBitmapMap) + sc::IconSetBitmapMap & rIconSetBitmapMap, bool bWorksInPixels) { long nSignedOneX = nOneX * nLayoutSign; // need to paint if old color scale has been used and now @@ -947,7 +958,7 @@ void drawCells(vcl::RenderContext& rRenderContext, boost::optional<Color> const if( pOldDataBarInfo ) drawDataBars(rRenderContext, pOldDataBarInfo, rRect, nOneX, nOneY); if( pOldIconSetInfo ) - drawIconSets(rRenderContext, pOldIconSetInfo, rRect, nOneX, nOneY, rIconSetBitmapMap); + drawIconSets(rRenderContext, pOldIconSetInfo, rRect, nOneX, nOneY, rIconSetBitmapMap, bWorksInPixels); rRect.SetLeft( nPosX - nSignedOneX ); } @@ -967,7 +978,7 @@ void drawCells(vcl::RenderContext& rRenderContext, boost::optional<Color> const if( pOldDataBarInfo ) drawDataBars(rRenderContext, pOldDataBarInfo, rRect, nOneX, nOneY); if( pOldIconSetInfo ) - drawIconSets(rRenderContext, pOldIconSetInfo, rRect, nOneX, nOneY, rIconSetBitmapMap); + drawIconSets(rRenderContext, pOldIconSetInfo, rRect, nOneX, nOneY, rIconSetBitmapMap, bWorksInPixels); rRect.SetLeft( nPosX - nSignedOneX ); } @@ -1130,7 +1141,7 @@ void ScOutputData::DrawBackground(vcl::RenderContext& rRenderContext) if (bWorksInPixels) nPosXLogic = rRenderContext.PixelToLogic(Point(nPosX, 0)).X(); - drawCells(rRenderContext, pColor, pBackground, pOldColor, pOldBackground, aRect, nPosXLogic, nLayoutSign, nOneXLogic, nOneYLogic, pDataBarInfo, pOldDataBarInfo, pIconSetInfo, pOldIconSetInfo, mpDoc->GetIconSetBitmapMap()); + drawCells(rRenderContext, pColor, pBackground, pOldColor, pOldBackground, aRect, nPosXLogic, nLayoutSign, nOneXLogic, nOneYLogic, pDataBarInfo, pOldDataBarInfo, pIconSetInfo, pOldIconSetInfo, mpDoc->GetIconSetBitmapMap(), bWorksInPixels); // extend for all merged cells nMergedCols = 1; @@ -1154,7 +1165,7 @@ void ScOutputData::DrawBackground(vcl::RenderContext& rRenderContext) if (bWorksInPixels) nPosXLogic = rRenderContext.PixelToLogic(Point(nPosX, 0)).X(); - drawCells(rRenderContext, boost::optional<Color>(), nullptr, pOldColor, pOldBackground, aRect, nPosXLogic, nLayoutSign, nOneXLogic, nOneYLogic, nullptr, pOldDataBarInfo, nullptr, pOldIconSetInfo, mpDoc->GetIconSetBitmapMap()); + drawCells(rRenderContext, boost::optional<Color>(), nullptr, pOldColor, pOldBackground, aRect, nPosXLogic, nLayoutSign, nOneXLogic, nOneYLogic, nullptr, pOldDataBarInfo, nullptr, pOldIconSetInfo, mpDoc->GetIconSetBitmapMap(), bWorksInPixels); nArrY += nSkip; }