From: Gunnar Sletta Date: Tue, 1 Oct 2013 07:11:54 +0000 (+0200) Subject: Mark DirtySubtreeBlocked correctly from OpacityNode X-Git-Tag: upstream/5.2.1~307 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=47635b6e872e3f537ba8859ff2ef7453a4ba374a;p=platform%2Fupstream%2Fqtdeclarative.git Mark DirtySubtreeBlocked correctly from OpacityNode In the edgecase where the opacity was exactly the OPACITY_THRESHOLD we would fail to mark the tree as dirty. This led to a crash in the renderer. Change-Id: I618910d0c792a215133598b6a87217be1f8729bc Reviewed-by: Eskil Abrahamsen Blomfeldt --- diff --git a/src/quick/scenegraph/coreapi/qsgnode.cpp b/src/quick/scenegraph/coreapi/qsgnode.cpp index d4241b7..b0c869c 100644 --- a/src/quick/scenegraph/coreapi/qsgnode.cpp +++ b/src/quick/scenegraph/coreapi/qsgnode.cpp @@ -1323,8 +1323,8 @@ void QSGOpacityNode::setOpacity(qreal opacity) return; DirtyState dirtyState = DirtyOpacity; - if ((m_opacity < OPACITY_THRESHOLD && opacity > OPACITY_THRESHOLD) - || (m_opacity > OPACITY_THRESHOLD && opacity < OPACITY_THRESHOLD)) + if ((m_opacity < OPACITY_THRESHOLD && opacity >= OPACITY_THRESHOLD) // blocked to unblocked + || (m_opacity >= OPACITY_THRESHOLD && opacity < OPACITY_THRESHOLD)) // unblocked to blocked dirtyState |= DirtySubtreeBlocked; m_opacity = opacity;