summaryrefslogtreecommitdiff
path: root/vcl
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2015-07-07 12:36:38 +0100
committerAndras Timar <andras.timar@collabora.com>2015-08-06 12:55:39 +0200
commit579adcefe47c99a4de27a76b8243b4d51a387816 (patch)
tree84850a314838ac6d4ac2420ee142345993d9a40b /vcl
parentce078d650210c8a0714941ca80fb7a45be64e146 (diff)
gtk3: handle 32bit icons, silences ugly warnings as bonus
Change-Id: I015c89740631dfcbe62cab62f75b4a44d2b3b35a (cherry picked from commit 10a3db37377a68ec7529bbfbf876c852d58b7ae4) Reviewed-on: https://gerrit.libreoffice.org/16814 Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk> Tested-by: Miklos Vajna <vmiklos@collabora.co.uk>
Diffstat (limited to 'vcl')
-rw-r--r--vcl/unx/gtk/window/gtksalframe.cxx21
1 files changed, 11 insertions, 10 deletions
diff --git a/vcl/unx/gtk/window/gtksalframe.cxx b/vcl/unx/gtk/window/gtksalframe.cxx
index c225426f8b77..3bee994f8f59 100644
--- a/vcl/unx/gtk/window/gtksalframe.cxx
+++ b/vcl/unx/gtk/window/gtksalframe.cxx
@@ -1631,7 +1631,7 @@ bitmapToPixbuf( SalBitmap *pSalBitmap, SalBitmap *pSalAlpha )
BitmapBuffer *pBitmap = pSalBitmap->AcquireBuffer( BITMAP_READ_ACCESS );
g_return_val_if_fail( pBitmap != NULL, NULL );
- g_return_val_if_fail( pBitmap->mnBitCount == 24, NULL );
+ g_return_val_if_fail( pBitmap->mnBitCount == 24 || pBitmap->mnBitCount == 32, NULL );
BitmapBuffer *pAlpha = pSalAlpha->AcquireBuffer( BITMAP_READ_ACCESS );
g_return_val_if_fail( pAlpha != NULL, NULL );
@@ -1651,19 +1651,20 @@ bitmapToPixbuf( SalBitmap *pSalBitmap, SalBitmap *pSalAlpha )
for( nX = 0; nX < pBitmap->mnWidth; nX++ )
{
- if( pBitmap->mnFormat == BMP_FORMAT_24BIT_TC_BGR )
+ BitmapColor aColor;
+ if (pBitmap->mnBitCount == 24)
{
- pDestData[2] = *pData++;
- pDestData[1] = *pData++;
- pDestData[0] = *pData++;
+ pBitmap->maColorMask.GetColorFor24Bit(aColor, pData);
+ pData+=3;
}
- else // BMP_FORMAT_24BIT_TC_RGB
+ else
{
- pDestData[0] = *pData++;
- pDestData[1] = *pData++;
- pDestData[2] = *pData++;
+ pBitmap->maColorMask.GetColorFor32Bit(aColor, pData);
+ pData+=4;
}
- pDestData += 3;
+ *pDestData++ = aColor.GetRed();
+ *pDestData++ = aColor.GetGreen();
+ *pDestData++ = aColor.GetBlue();
*pDestData++ = 255 - *pAlphaData++;
}
}