vcl/qt5/Qt5Bitmap.cxx | 3 ++- vcl/qt5/Qt5Frame.cxx | 1 + vcl/qt5/Qt5VirtualDevice.cxx | 1 + vcl/qt5/Qt5Widget.cxx | 12 +++++++++++- 4 files changed, 15 insertions(+), 2 deletions(-)
New commits: commit 5edc23dbc53773536265fd6a54319d9cd1cd9e99 Author: Aleksei Nikiforov <darktemp...@basealt.ru> AuthorDate: Wed Nov 7 17:48:06 2018 +0300 Commit: Katarina Behrens <katarina.behr...@cib.de> CommitDate: Fri Nov 16 10:43:27 2018 +0100 tdf#120777 KDE5: Update initialization of QImages Make sure that created empty QImages are filled with transparent pixels. Copying data from previous QImage on widget resize removes blanking on window resize when qt5 vcl plugin is used. Change-Id: If072a4b8b334bc87dbe4aaea9aa8774bb5e202ee Reviewed-on: https://gerrit.libreoffice.org/63029 Reviewed-by: Katarina Behrens <katarina.behr...@cib.de> Tested-by: Katarina Behrens <katarina.behr...@cib.de> diff --git a/vcl/qt5/Qt5Bitmap.cxx b/vcl/qt5/Qt5Bitmap.cxx index eb2037c214c8..defd0280ac24 100644 --- a/vcl/qt5/Qt5Bitmap.cxx +++ b/vcl/qt5/Qt5Bitmap.cxx @@ -63,6 +63,7 @@ bool Qt5Bitmap::Create(const Size& rSize, sal_uInt16 nBitCount, const BitmapPale else { m_pImage.reset(new QImage(toQSize(rSize), getBitFormat(nBitCount))); + m_pImage->fill(Qt::transparent); m_pBuffer.reset(); } m_aPalette = rPal; @@ -129,7 +130,7 @@ bool Qt5Bitmap::Create(const SalBitmap& rSalBmp, sal_uInt16 nNewBitCount) // convert 4bit indexed palette to 32bit ARGB m_pImage.reset(new QImage(pBitmap->m_aSize.Width(), pBitmap->m_aSize.Height(), getBitFormat(nNewBitCount))); - m_pImage->fill(0); + m_pImage->fill(Qt::transparent); // prepare a whole palette const BitmapPalette& rPal = pBitmap->m_aPalette; diff --git a/vcl/qt5/Qt5Frame.cxx b/vcl/qt5/Qt5Frame.cxx index f6428af8b91c..ad043ebd3ab8 100644 --- a/vcl/qt5/Qt5Frame.cxx +++ b/vcl/qt5/Qt5Frame.cxx @@ -211,6 +211,7 @@ SalGraphics* Qt5Frame::AcquireGraphics() { m_pQt5Graphics.reset(new Qt5Graphics(this)); m_pQImage.reset(new QImage(m_pQWidget->size(), Qt5_DefaultFormat32)); + m_pQImage->fill(Qt::transparent); m_pQt5Graphics->ChangeQImage(m_pQImage.get()); } return m_pQt5Graphics.get(); diff --git a/vcl/qt5/Qt5VirtualDevice.cxx b/vcl/qt5/Qt5VirtualDevice.cxx index a26ec627bea5..f1c7d9606c8f 100644 --- a/vcl/qt5/Qt5VirtualDevice.cxx +++ b/vcl/qt5/Qt5VirtualDevice.cxx @@ -76,6 +76,7 @@ bool Qt5VirtualDevice::SetSizeUsingBuffer(long nNewDX, long nNewDY, sal_uInt8* p m_pImage.reset(new QImage(nNewDX, nNewDY, Qt5_DefaultFormat32)); } + m_pImage->fill(Qt::transparent); m_pImage->setDevicePixelRatio(m_fScale); // update device in existing graphics diff --git a/vcl/qt5/Qt5Widget.cxx b/vcl/qt5/Qt5Widget.cxx index 9edb7d15f89f..1c032e2a75ce 100644 --- a/vcl/qt5/Qt5Widget.cxx +++ b/vcl/qt5/Qt5Widget.cxx @@ -86,7 +86,17 @@ void Qt5Widget::resizeEvent(QResizeEvent* pEvent) } else { - QImage* pImage = new QImage(size(), Qt5_DefaultFormat32); + QImage* pImage = nullptr; + + if (m_pFrame->m_pQImage) + pImage = new QImage( + m_pFrame->m_pQImage->copy(0, 0, pEvent->size().width(), pEvent->size().height())); + else + { + pImage = new QImage(size(), Qt5_DefaultFormat32); + pImage->fill(Qt::transparent); + } + m_pFrame->m_pQt5Graphics->ChangeQImage(pImage); m_pFrame->m_pQImage.reset(pImage); } _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits