XRender backend: do not process invalid shadow data
This commit is contained in:
parent
f5ad33789c
commit
2573bec755
1 changed files with 5 additions and 1 deletions
|
@ -732,7 +732,7 @@ void SceneXrender::Window::performPaint(int mask, QRegion region, WindowPaintDat
|
||||||
}
|
}
|
||||||
|
|
||||||
//shadow
|
//shadow
|
||||||
if (m_shadow && !(mask & PAINT_DECORATION_ONLY)) {
|
if (m_shadow && !(m_shadow->shadowRegion().isEmpty()) && !(mask & PAINT_DECORATION_ONLY)) {
|
||||||
QRect stlr, str, strr, srr, sbrr, sbr, sblr, slr;
|
QRect stlr, str, strr, srr, sbrr, sbr, sblr, slr;
|
||||||
SceneXRenderShadow* m_xrenderShadow = static_cast<SceneXRenderShadow*>(m_shadow);
|
SceneXRenderShadow* m_xrenderShadow = static_cast<SceneXRenderShadow*>(m_shadow);
|
||||||
m_xrenderShadow->layoutShadowRects(str, strr, srr, sbrr, sbr, sblr, slr, stlr);
|
m_xrenderShadow->layoutShadowRects(str, strr, srr, sbrr, sbr, sblr, slr, stlr);
|
||||||
|
@ -1092,6 +1092,10 @@ void SceneXRenderShadow::buildQuads()
|
||||||
{
|
{
|
||||||
Shadow::buildQuads();
|
Shadow::buildQuads();
|
||||||
|
|
||||||
|
if (shadowQuads().count() == 0) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
QRect stlr, str, strr, srr, sbrr, sbr, sblr, slr;
|
QRect stlr, str, strr, srr, sbrr, sbr, sblr, slr;
|
||||||
layoutShadowRects(str, strr, srr, sbrr, sbr, sblr, slr, stlr);
|
layoutShadowRects(str, strr, srr, sbrr, sbr, sblr, slr, stlr);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue