[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [calligra/calligra/2.9] krita/image: Don't recalculate projection of nodes that are invisible
From:       Dmitry Kazakov <dimula73 () gmail ! com>
Date:       2015-09-30 15:12:17
Message-ID: E1ZhJ3J-0006yj-Vr () scm ! kde ! org
[Download RAW message or body]

Git commit 70a9b78085ec6cf12c858c95eaa0d3dc817c4086 by Dmitry Kazakov.
Committed on 30/09/2015 at 15:11.
Pushed by dkazakov into branch 'calligra/2.9'.

Don't recalculate projection of nodes that are invisible

Anyway, they will be recalculated when the user sets them visible again

M  +9    -3    krita/image/kis_async_merger.cpp

http://commits.kde.org/calligra/70a9b78085ec6cf12c858c95eaa0d3dc817c4086

diff --git a/krita/image/kis_async_merger.cpp b/krita/image/kis_async_merge=
r.cpp
index 277cf1d..4f79b16 100644
--- a/krita/image/kis_async_merger.cpp
+++ b/krita/image/kis_async_merger.cpp
@@ -245,18 +245,24 @@ void KisAsyncMerger::startMerge(KisBaseRectsWalker &w=
alker, bool notifyClones) {
         if(item.m_position & KisMergeWalker::N_FILTHY) {
             DEBUG_NODE_ACTION("Updating", "N_FILTHY", currentLeaf, applyRe=
ct);
             currentLeaf->accept(originalVisitor);
-            currentLeaf->projectionPlane()->recalculate(applyRect, walker.=
startNode());
+            if (currentLeaf->visible()) {
+                currentLeaf->projectionPlane()->recalculate(applyRect, wal=
ker.startNode());
+            }
         }
         else if(item.m_position & KisMergeWalker::N_ABOVE_FILTHY) {
             DEBUG_NODE_ACTION("Updating", "N_ABOVE_FILTHY", currentLeaf, a=
pplyRect);
             if(currentLeaf->dependsOnLowerNodes()) {
                 currentLeaf->accept(originalVisitor);
-                currentLeaf->projectionPlane()->recalculate(applyRect, cur=
rentLeaf->node());
+                if (currentLeaf->visible()) {
+                    currentLeaf->projectionPlane()->recalculate(applyRect,=
 currentLeaf->node());
+                }
             }
         }
         else if(item.m_position & KisMergeWalker::N_FILTHY_PROJECTION) {
             DEBUG_NODE_ACTION("Updating", "N_FILTHY_PROJECTION", currentLe=
af, applyRect);
-            currentLeaf->projectionPlane()->recalculate(applyRect, walker.=
startNode());
+            if (currentLeaf->visible()) {
+                currentLeaf->projectionPlane()->recalculate(applyRect, wal=
ker.startNode());
+            }
         }
         else /*if(item.m_position & KisMergeWalker::N_BELOW_FILTHY)*/ {
             DEBUG_NODE_ACTION("Updating", "N_BELOW_FILTHY", currentLeaf, a=
pplyRect);

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic