Deep copy of Shadow pixmap again
Basically revert of fb9afb61f8c1e7db4ae034435a9d54b5e87977d5. Fixes an issue of black shadows which could sometimes happen in OpenGL backend.
This commit is contained in:
parent
6569bb071f
commit
04020f0b42
1 changed files with 2 additions and 2 deletions
|
@ -99,11 +99,11 @@ QVector< long > Shadow::readX11ShadowProperty(WId id)
|
||||||
bool Shadow::init(const QVector< long > &data)
|
bool Shadow::init(const QVector< long > &data)
|
||||||
{
|
{
|
||||||
for (int i=0; i<ShadowElementsCount; ++i) {
|
for (int i=0; i<ShadowElementsCount; ++i) {
|
||||||
QPixmap pix = QPixmap::fromX11Pixmap(data[i]);
|
QPixmap pix = QPixmap::fromX11Pixmap(data[i], QPixmap::ExplicitlyShared);
|
||||||
if (pix.isNull() || pix.depth() != 32) {
|
if (pix.isNull() || pix.depth() != 32) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
m_shadowElements[i] = pix;
|
m_shadowElements[i] = pix.copy(0, 0, pix.width(), pix.height());
|
||||||
}
|
}
|
||||||
m_topOffset = data[ShadowElementsCount];
|
m_topOffset = data[ShadowElementsCount];
|
||||||
m_rightOffset = data[ShadowElementsCount+1];
|
m_rightOffset = data[ShadowElementsCount+1];
|
||||||
|
|
Loading…
Reference in a new issue