Bug 291637 - Panning tool locks with polyline selection and zoom center offset.
Summary: Panning tool locks with polyline selection and zoom center offset.
Status: RESOLVED FIXED
Alias: None
Product: krita
Classification: Applications
Component: General (show other bugs)
Version: unspecified
Platform: Ubuntu Linux
: NOR normal
Target Milestone: ---
Assignee: Dmitry Kazakov
URL:
Keywords:
: 294099 (view as bug list)
Depends on:
Blocks:
 
Reported: 2012-01-16 08:53 UTC by Cesar Tellez
Modified: 2012-02-26 12:57 UTC (History)
3 users (show)

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 Cesar Tellez 2012-01-16 08:53:15 UTC
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.
Comment 1 Halla Rempt 2012-01-21 11:14:17 UTC
Hi Cesar,

Thanks for your report! I can indeed reproduce it easily. Now for a fix :-)
Comment 2 Halla Rempt 2012-02-14 20:08:28 UTC
*** Bug 294099 has been marked as a duplicate of this bug. ***
Comment 3 Dmitry Kazakov 2012-02-26 12:57:03 UTC
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