XRender backend: do not process invalid shadow data

This commit is contained in:
Jacopo De Simoi 2011-05-09 11:13:05 -04:00
parent f5ad33789c
commit 2573bec755

View file

@ -732,7 +732,7 @@ void SceneXrender::Window::performPaint(int mask, QRegion region, WindowPaintDat
}
//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;
SceneXRenderShadow* m_xrenderShadow = static_cast<SceneXRenderShadow*>(m_shadow);
m_xrenderShadow->layoutShadowRects(str, strr, srr, sbrr, sbr, sblr, slr, stlr);
@ -1092,6 +1092,10 @@ void SceneXRenderShadow::buildQuads()
{
Shadow::buildQuads();
if (shadowQuads().count() == 0) {
return;
}
QRect stlr, str, strr, srr, sbrr, sbr, sblr, slr;
layoutShadowRects(str, strr, srr, sbrr, sbr, sblr, slr, stlr);