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
                   |                            |ta/02ac4216a4913fe3e5f69e72
                   |                            |81c5f72a6df91c9e
             Status|CONFIRMED                   |RESOLVED
         Resolution|---                         |FIXED

--- Comment #19 from Dmitry Kazakov <dimul...@gmail.com> ---
Git commit 02ac4216a4913fe3e5f69e7281c5f72a6df91c9e by Dmitry Kazakov.
Committed on 25/03/2017 at 16:49.
Pushed by dkazakov into branch 'kazakov/svg-loading'.

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/02ac4216a4913fe3e5f69e7281c5f72a6df91c9e

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

Reply via email to