From b18e2d80d7ed102645f7d6df75f521cd584c8a71 Mon Sep 17 00:00:00 2001 From: Caolán McNamara Date: Thu, 8 Mar 2018 17:35:21 +0000 Subject: color picker behaviour changed MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit since... commit db42098d99bd8648fcd7b6f669e3e5ad4142670a Date: Fri Feb 9 10:47:48 2018 +0200 use VirtualDevice in ColorFieldControl as part of moving use of BitmapWriteAccess inside of vcl/ changing the radiobutton selected used to change the contents of the color picker widget, after that point it got locked to the original contents. Change-Id: I94c730f1868efc388cba7720364bc04a666d4fbd Reviewed-on: https://gerrit.libreoffice.org/50969 Tested-by: Jenkins Reviewed-by: Caolán McNamara Tested-by: Caolán McNamara --- cui/source/dialogs/colorpicker.cxx | 46 +++++++++++++++++++------------------- 1 file changed, 23 insertions(+), 23 deletions(-) (limited to 'cui') diff --git a/cui/source/dialogs/colorpicker.cxx b/cui/source/dialogs/colorpicker.cxx index 2619fa1c6f3a..3557e1401f54 100644 --- a/cui/source/dialogs/colorpicker.cxx +++ b/cui/source/dialogs/colorpicker.cxx @@ -265,41 +265,41 @@ void ColorFieldControl::UpdateBitmap() { const Size aSize(GetOutputSizePixel()); + if (mxBitmap && mxBitmap->GetOutputSizePixel() != aSize) + mxBitmap.disposeAndClear(); + const sal_Int32 nWidth = aSize.Width(); const sal_Int32 nHeight = aSize.Height(); if (nWidth == 0 || nHeight == 0) return; - if (mxBitmap && mxBitmap->GetOutputSizePixel() == aSize) - return; - - mxBitmap.disposeAndClear(); - mxBitmap = VclPtr::Create(); - mxBitmap->SetOutputSizePixel(aSize); + if (!mxBitmap) + { + mxBitmap = VclPtr::Create(); + mxBitmap->SetOutputSizePixel(aSize); - maRGB_Horiz.resize( nWidth ); - maGrad_Horiz.resize( nWidth ); - maPercent_Horiz.resize( nWidth ); + maRGB_Horiz.resize( nWidth ); + maGrad_Horiz.resize( nWidth ); + maPercent_Horiz.resize( nWidth ); - sal_uInt8* pRGB = maRGB_Horiz.data(); - sal_uInt16* pGrad = maGrad_Horiz.data(); - sal_uInt16* pPercent = maPercent_Horiz.data(); + sal_uInt8* pRGB = maRGB_Horiz.data(); + sal_uInt16* pGrad = maGrad_Horiz.data(); + sal_uInt16* pPercent = maPercent_Horiz.data(); - for( sal_Int32 x = 0; x < nWidth; x++ ) - { - *pRGB++ = static_cast((x * 256) / nWidth); - *pGrad++ = static_cast((x * 359) / nWidth); - *pPercent++ = static_cast((x * 100) / nWidth); - } + for( sal_Int32 x = 0; x < nWidth; x++ ) + { + *pRGB++ = static_cast((x * 256) / nWidth); + *pGrad++ = static_cast((x * 359) / nWidth); + *pPercent++ = static_cast((x * 100) / nWidth); + } - maRGB_Vert.resize(nHeight); - maPercent_Vert.resize(nHeight); + maRGB_Vert.resize(nHeight); + maPercent_Vert.resize(nHeight); - pRGB = maRGB_Vert.data(); - pPercent = maPercent_Vert.data(); + pRGB = maRGB_Vert.data(); + pPercent = maPercent_Vert.data(); - { sal_Int32 y = nHeight; while (y--) { -- cgit