From 2573bec755a85ef773c3916bb6d75ae9e523ef43 Mon Sep 17 00:00:00 2001 From: Jacopo De Simoi Date: Mon, 9 May 2011 11:13:05 -0400 Subject: [PATCH] XRender backend: do not process invalid shadow data --- scene_xrender.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/scene_xrender.cpp b/scene_xrender.cpp index 5c7663b795..a1ed9e0b3d 100644 --- a/scene_xrender.cpp +++ b/scene_xrender.cpp @@ -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(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);