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

Dmitry Kazakov <dimul...@gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
      Latest Commit|https://commits.kde.org/kri |https://commits.kde.org/kri
                   |ta/02ac4216a4913fe3e5f69e72 |ta/3a50b43867cb70b10d139c5d
                   |81c5f72a6df91c9e            |b8e1217d96217d50

--- Comment #20 from Dmitry Kazakov <dimul...@gmail.com> ---
Git commit 3a50b43867cb70b10d139c5db8e1217d96217d50 by Dmitry Kazakov.
Committed on 29/03/2017 at 10:03.
Pushed by dkazakov into branch 'krita/3.1'.

Fix resetting the paint device cache on every iterator completion

This bug should have happened one day. We should reset the paint device
cache not only on the creation of the iterator, but also on its
completion.

The actual bug happened because of concurrency, while the stroke was
filling the selection, an delayed updateGUI() in the status bar
requested selection->selectedExactRect(), which effectively updated the
cache with empty rect (which it was at that moment). And when the
iterator completed with the updated seleciton, the cache was already
initialized with wrong (empty) rect.

Now all the iterators notify the paint device about their completion
using a special interface, therefore the problem cannot happen, all
the editing event will be synchronized.

A  +33   -0    libs/image/kis_iterator_complete_listener.h     [License: GPL
(v2+)]
M  +6    -2    libs/image/kis_paint_device.cc
M  +31   -8    libs/image/kis_paint_device_data.h
M  +12   -12   libs/image/kis_paint_device_strategies.h
M  +13   -11   libs/image/kis_repeat_iterators_pixel.h
M  +4    -2    libs/image/kis_wrapped_hline_iterator.h
M  +4    -2    libs/image/kis_wrapped_line_iterator_base.h
M  +2    -1    libs/image/kis_wrapped_random_accessor.cpp
M  +1    -0    libs/image/kis_wrapped_random_accessor.h
M  +4    -2    libs/image/kis_wrapped_vline_iterator.h
M  +11   -1    libs/image/tiles3/kis_base_iterator.h
M  +2    -2    libs/image/tiles3/kis_hline_iterator.cpp
M  +1    -1    libs/image/tiles3/kis_hline_iterator.h
M  +7    -2    libs/image/tiles3/kis_random_accessor.cc
M  +3    -1    libs/image/tiles3/kis_random_accessor.h
M  +2    -2    libs/image/tiles3/kis_vline_iterator.cpp
M  +1    -1    libs/image/tiles3/kis_vline_iterator.h

https://commits.kde.org/krita/3a50b43867cb70b10d139c5db8e1217d96217d50

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

Reply via email to