Bug 309628 - Undo/Redo of Select and Deselect commands sometimes causes a crash
Summary: Undo/Redo of Select and Deselect commands sometimes causes a crash
Status: RESOLVED FIXED
Alias: None
Product: krita
Classification: Applications
Component: General (show other bugs)
Version: git master (please specify the git hash!)
Platform: unspecified Linux
: NOR crash
Target Milestone: ---
Assignee: Dmitry Kazakov
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-11-06 06:13 UTC by Dmitry Kazakov
Modified: 2012-11-13 04:30 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
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