Bug 309628

Summary: Undo/Redo of Select and Deselect commands sometimes causes a crash
Product: [Applications] krita Reporter: Dmitry Kazakov <dimula73>
Component: GeneralAssignee: Dmitry Kazakov <dimula73>
Status: RESOLVED FIXED    
Severity: crash    
Priority: NOR    
Version: git master (please specify the git hash!)   
Target Milestone: ---   
Platform: unspecified   
OS: Linux   
Latest Commit: Version Fixed In:

Description Dmitry Kazakov 2012-11-06 06:13:22 UTC
This happens due to the fact that the Select/Deselect actions add/remove nodes from the node stack, so they must be executed in exclusive mode (without updates happening at the same time). It can be achieved by porting these actions to strokes framework.
Comment 1 Dmitry Kazakov 2012-11-07 13:34:41 UTC
Git commit e583f2251648d6ed91fc7748cbc0f2702e0502ab by Dmitry Kazakov.
Committed on 07/11/2012 at 12:46.
Pushed by dkazakov into branch 'krita-new-move-tool-kazakov'.

Ported KisSelectionManager to the strokes

At the same time, all its methods are now moved into separate
factory classes, so it will be much easier to add recording to
it later.

M  +12   -0    krita/image/kis_painter.cc
M  +5    -0    krita/image/kis_painter.h
M  +6    -2    krita/image/kis_processing_applicator.cpp
M  +3    -0    krita/ui/CMakeLists.txt
A  +486  -0    krita/ui/actions/kis_selection_action_factories.cpp     [License: GPL (v2+)]
A  +105  -0    krita/ui/actions/kis_selection_action_factories.h     [License: GPL (v2+)]
M  +68   -291  krita/ui/kis_selection_manager.cc
A  +57   -0    krita/ui/kis_ui_action_factory.cpp     [License: GPL (v2+)]
A  +52   -0    krita/ui/kis_ui_action_factory.h     [License: GPL (v2+)]
A  +53   -0    krita/ui/kis_ui_action_factory_registry.cpp     [License: GPL (v2+)]
A  +35   -0    krita/ui/kis_ui_action_factory_registry.h     [License: GPL (v2+)]
M  +9    -0    krita/ui/tests/kis_selection_manager_test.cpp
M  +2    -0    krita/ui/tool/kis_tool.cc

http://commits.kde.org/calligra/e583f2251648d6ed91fc7748cbc0f2702e0502ab
Comment 2 Dmitry Kazakov 2012-11-13 04:30:08 UTC
Git commit 7841e0c87a294ffde3de6e9c1cd5e41b3fc161a8 by Dmitry Kazakov.
Committed on 07/11/2012 at 12:46.
Pushed by dkazakov into branch 'calligra/2.6'.

Ported KisSelectionManager to the strokes

At the same time, all its methods are now moved into separate
factory classes, so it will be much easier to add recording to
it later.

M  +12   -0    krita/image/kis_painter.cc
M  +5    -0    krita/image/kis_painter.h
M  +6    -2    krita/image/kis_processing_applicator.cpp
M  +3    -0    krita/ui/CMakeLists.txt
A  +486  -0    krita/ui/actions/kis_selection_action_factories.cpp     [License: GPL (v2+)]
A  +105  -0    krita/ui/actions/kis_selection_action_factories.h     [License: GPL (v2+)]
M  +68   -291  krita/ui/kis_selection_manager.cc
A  +57   -0    krita/ui/kis_ui_action_factory.cpp     [License: GPL (v2+)]
A  +52   -0    krita/ui/kis_ui_action_factory.h     [License: GPL (v2+)]
A  +53   -0    krita/ui/kis_ui_action_factory_registry.cpp     [License: GPL (v2+)]
A  +35   -0    krita/ui/kis_ui_action_factory_registry.h     [License: GPL (v2+)]
M  +9    -0    krita/ui/tests/kis_selection_manager_test.cpp
M  +2    -0    krita/ui/tool/kis_tool.cc

http://commits.kde.org/calligra/7841e0c87a294ffde3de6e9c1cd5e41b3fc161a8