Version: unspecified (using Devel) OS: Linux 1.- When the polyline selcton tool is active and the user uses the spacebar to pan the canvas, the panning tool locks in the coordinates, pressing ESC allow to chage to another tool, but if the polyline selection tool is used again it turns automatically to panning mode and won't change back no matter unless the user restarts Krita. Now, not sure if I should open another bug report for this one, but if the canvas is rotated and the user zooms in/out the program "loses" the canvas center. Reproducible: Always Steps to Reproduce: 1.- Activate the polyline selction tool. 2.- Start defining points in the canvas without closing the selection. 3.- Press the spacebar to pan the canvas. 4.- Pan the canvas. Actual Results: The panning tool replaces the polyline selection tool and won't turn back to polyline ever after the spacebar is released. When ESC is pressed it allows the user to change to another tool and use it normally, but if the polyline selection tool is activated again it changes automatically to panning mode, and again, pressing ESC will always allow to change the tool, but the same behavior will repeat unless the user restarts Krita. Expected Results: Returning to polyline selection tool after the spacebar is released. Linux Mint 12 with Gnome classic session. Krita 2.4 beta 6 from backports ppa lcms2 installed Using wacom bamboo pen.
Hi Cesar, Thanks for your report! I can indeed reproduce it easily. Now for a fix :-)
*** Bug 294099 has been marked as a duplicate of this bug. ***
Git commit cfc85f02854cd8caf9a95d5360973ebaadc14146 by Dmitry Kazakov. Committed on 26/02/2012 at 14:36. Pushed by dkazakov into branch 'tools-modifiers-fixes-kazakov'. Fixed mouse/modifies for tools again Ok, this path fixes several things: 1) It removes almost all uses of m_localTool technique (except path-based tools). This caused various problems with processing of the events by two independent KisTool-based tools. Now it is gone, and creation of the Options widget is done by a separate class: KisSelectionToolConfigWidgetHelper. This class will probably disappear as well, when the figure-based tools are united in a single class. KisToolSelectBase now uses the helper as well and non-figure-based classes inherit it. 2) It fixes processing of mouse/keyboard events in KisTool/KisToolPaint. Well, *we really need to write some interaction-based system for the events*. The state machine of the interactions must be written separately. I've fixed this at least three times in the last two years. Such code does not live longer than half a year. Another change will break them again. Ok, I must admit that I was wrong suggesting using SECONDARY_HOVER_MODE for showing the cursor of the color picker. If we did so we would have to introduce even more modes like MIRROR_HOVER, PAN_HOVER. In this case it would be almost impossible to deal with these states manually using 'if's. So what I did was introducing KisToolPaint::specialHoverModeActive(), which is checked by the KisToolFreehand. This is a hack, but it will go when we do the tools in a right way. Currently, any change in this area will demand rewriting this part anyway. M +6 -1 krita/plugins/tools/defaulttools/kis_tool_multihand.cpp M +13 -20 krita/plugins/tools/selectiontools/kis_tool_select_brush.cc M +0 -1 krita/plugins/tools/selectiontools/kis_tool_select_brush.h M +18 -11 krita/plugins/tools/selectiontools/kis_tool_select_contiguous.cc M +21 -40 krita/plugins/tools/selectiontools/kis_tool_select_elliptical.cc M +8 -25 krita/plugins/tools/selectiontools/kis_tool_select_elliptical.h M +9 -7 krita/plugins/tools/selectiontools/kis_tool_select_magnetic.cc M +14 -25 krita/plugins/tools/selectiontools/kis_tool_select_outline.cc M +0 -2 krita/plugins/tools/selectiontools/kis_tool_select_outline.h M +21 -113 krita/plugins/tools/selectiontools/kis_tool_select_path.cc M +19 -13 krita/plugins/tools/selectiontools/kis_tool_select_path.h M +24 -45 krita/plugins/tools/selectiontools/kis_tool_select_polygonal.cc M +8 -24 krita/plugins/tools/selectiontools/kis_tool_select_polygonal.h M +22 -39 krita/plugins/tools/selectiontools/kis_tool_select_rectangular.cc M +8 -22 krita/plugins/tools/selectiontools/kis_tool_select_rectangular.h M +14 -34 krita/plugins/tools/selectiontools/kis_tool_select_similar.cc M +3 -19 krita/plugins/tools/selectiontools/kis_tool_select_similar.h M +1 -0 krita/ui/CMakeLists.txt A +97 -0 krita/ui/tool/kis_selection_tool_config_widget_helper.cpp [License: GPL (v2+)] A +59 -0 krita/ui/tool/kis_selection_tool_config_widget_helper.h [License: GPL (v2+)] M +29 -19 krita/ui/tool/kis_tool.cc M +1 -2 krita/ui/tool/kis_tool.h M +1 -0 krita/ui/tool/kis_tool_ellipse_base.cpp M +1 -1 krita/ui/tool/kis_tool_ellipse_base.h M +31 -37 krita/ui/tool/kis_tool_freehand.cc M +1 -2 krita/ui/tool/kis_tool_freehand.h M +45 -17 krita/ui/tool/kis_tool_paint.cc M +3 -0 krita/ui/tool/kis_tool_paint.h M +1 -1 krita/ui/tool/kis_tool_rectangle_base.cpp M +23 -64 krita/ui/tool/kis_tool_select_base.cpp M +12 -14 krita/ui/tool/kis_tool_select_base.h http://commits.kde.org/calligra/cfc85f02854cd8caf9a95d5360973ebaadc14146