diff options
author | Caolán McNamara <caolanm@redhat.com> | 2015-07-07 12:36:38 +0100 |
---|---|---|
committer | Andras Timar <andras.timar@collabora.com> | 2015-08-06 12:55:39 +0200 |
commit | 579adcefe47c99a4de27a76b8243b4d51a387816 (patch) | |
tree | 84850a314838ac6d4ac2420ee142345993d9a40b /vcl | |
parent | ce078d650210c8a0714941ca80fb7a45be64e146 (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.cxx | 21 |
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++; } } |