https://bugs.kde.org/show_bug.cgi?id=394199

Eoin O'Neill <eoinoneill1...@gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |eoinoneill1...@gmail.com

--- Comment #3 from Eoin O'Neill <eoinoneill1...@gmail.com> ---
More notes from dmitry:

---------------------------------

afaict, the following should be done:
1) KisProjectionLeaf should override node visibility if the node is exactly the
root of the isolation
2) StartIsolatedModeStroke::initStrokeCallback should check if the
node->projectionLeaf()->visible() has changed during assignment of the root
if it has changed, updates should be issued
3) These updates should be done with blockUIUpdates set to false (like it is
done in KisProcessingApplicator)
4) notifyProjectionUpdatedInPatches() and all the final updates stuff should go
into a separate StartIsolatedModeStroke::finishStrokeCallback(), which should
be barrier

this->enableJob(JOB_INIT, true, KisStrokeJobData::BARRIER)

5) It might be that

m_node->projectionLeaf()->explicitlyRegeneratePassThroughProjection(); can be
replaced with these new updates, but i'm not sure. It should be a separate
patch for sure

6) There should also be an optimization, these updates should not be issued for
that layers without any internal projections/caches (not listed in my list in
the bug). You might want to add some new method to KisBaseNode, like
'hasProjectionsForUpdateWhileHidden()'
for normal layers it should return "this->needProjection()", for KisShapeLayer
it shoudl always return true

-------------------------------

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to