Here are 2 feedback I wrote on the mailing list thread "Merged the first bits of Canvas Interaction" (06/26/2012 04:21 PM). I duplicate them here to make it easier to maintain. 1/ zoom origin Zooming is always centered to the viewport, could it be centered in the cursor/mouse position ( the start position when the dragging action is performed ) ? ( ex: I start to press Ctrl+Space on keyboard ; I move my cursor hover top left , and click to zoom = the zoom is focusing on this zone ) 2/ switch from 'Ctrl-space zoom' to 'space pan' and vice versa. When pressing Ctrl+Space+click to zoom, if I keep space hold and release Ctrl it's not switch to panning , and the zoom continue. I would love to can do it. Same for reverse : While panning with space pressed, I would love to only add control to switch to zooming. Reproducible: Always Actual Results: Expected Results:
Ack...
marking as regression.
The same bug happens when you try to Rotate a canvas: pressing Shift allows to rotate it only once. After you release Middle Button, you need to press shift one more time.
Pressing Ctrl, then holding '+' or '-' keys enables Keys Autorepeat that has to be disabled.
Git commit ac7eea24b10c0920fbef3e65f59db2722998d30e by Dmitry Kazakov. Committed on 12/11/2012 at 16:33. Pushed by dkazakov into branch 'krita-new-move-tool-kazakov'. Fixed the second half of bug 302758 This patch almost rewrites the KisInputManager to fix the mentioned bug. Now all the state transitions of the actions are controlled by a special class KisShorcutMatcher. This class is easily controlled by a separate unittest. The work of the actions is now can be represented by a simple state machine with three states (see docs for class KisStrokeShortcut). M +4 -1 krita/ui/CMakeLists.txt M +39 -18 krita/ui/input/kis_abstract_input_action.cpp M +50 -23 krita/ui/input/kis_abstract_input_action.h A +68 -0 krita/ui/input/kis_abstract_shortcut.cpp [License: GPL (v2+)] A +72 -0 krita/ui/input/kis_abstract_shortcut.h [License: GPL (v2+)] M +16 -16 krita/ui/input/kis_alternate_invocation_action.cpp M +3 -5 krita/ui/input/kis_alternate_invocation_action.h M +16 -16 krita/ui/input/kis_change_primary_setting_action.cpp M +3 -5 krita/ui/input/kis_change_primary_setting_action.h M +218 -279 krita/ui/input/kis_input_manager.cpp M +4 -9 krita/ui/input/kis_input_manager.h A +70 -0 krita/ui/input/kis_key_shortcut.cpp [License: GPL (v2+)] A +54 -0 krita/ui/input/kis_key_shortcut.h [License: GPL (v2+)] M +17 -38 krita/ui/input/kis_pan_action.cpp M +4 -4 krita/ui/input/kis_pan_action.h M +25 -57 krita/ui/input/kis_rotate_canvas_action.cpp M +4 -9 krita/ui/input/kis_rotate_canvas_action.h D +0 -162 krita/ui/input/kis_shortcut.cpp D +0 -120 krita/ui/input/kis_shortcut.h A +287 -0 krita/ui/input/kis_shortcut_matcher.cpp [License: GPL (v2+)] A +143 -0 krita/ui/input/kis_shortcut_matcher.h [License: GPL (v2+)] M +3 -12 krita/ui/input/kis_show_palette_action.cpp M +1 -3 krita/ui/input/kis_show_palette_action.h A +72 -0 krita/ui/input/kis_stroke_shortcut.cpp [License: GPL (v2+)] A +80 -0 krita/ui/input/kis_stroke_shortcut.h [License: GPL (v2+)] M +33 -50 krita/ui/input/kis_tool_invocation_action.cpp M +3 -5 krita/ui/input/kis_tool_invocation_action.h M +19 -47 krita/ui/input/kis_zoom_action.cpp M +4 -8 krita/ui/input/kis_zoom_action.h M +6 -0 krita/ui/tests/CMakeLists.txt A +357 -0 krita/ui/tests/kis_input_manager_test.cpp [License: GPL (v2+)] C +14 -19 krita/ui/tests/kis_input_manager_test.h [from: krita/ui/input/kis_show_palette_action.h - 053% similarity] [License: GPL] http://commits.kde.org/calligra/ac7eea24b10c0920fbef3e65f59db2722998d30e
Git commit 7a0132427816a5713595fa2aaa0a6f4017d32b45 by Dmitry Kazakov. Committed on 13/11/2012 at 16:19. Pushed by dkazakov into branch 'krita-new-move-tool-kazakov'. Added discrete rotation and zooming shortcuts M +10 -3 krita/ui/input/kis_input_manager.cpp M +26 -2 krita/ui/input/kis_rotate_canvas_action.cpp M +5 -0 krita/ui/input/kis_rotate_canvas_action.h M +26 -5 krita/ui/input/kis_zoom_action.cpp M +1 -0 krita/ui/input/kis_zoom_action.h http://commits.kde.org/calligra/7a0132427816a5713595fa2aaa0a6f4017d32b45
Git commit 80cb31e7938d92c59c0bec7c461186797c6a5ae8 by Dmitry Kazakov. Committed on 12/11/2012 at 16:33. Pushed by dkazakov into branch 'calligra/2.6'. Fixed the second half of bug 302758 This patch almost rewrites the KisInputManager to fix the mentioned bug. Now all the state transitions of the actions are controlled by a special class KisShorcutMatcher. This class is easily controlled by a separate unittest. The work of the actions is now can be represented by a simple state machine with three states (see docs for class KisStrokeShortcut). M +4 -1 krita/ui/CMakeLists.txt M +39 -18 krita/ui/input/kis_abstract_input_action.cpp M +50 -23 krita/ui/input/kis_abstract_input_action.h A +68 -0 krita/ui/input/kis_abstract_shortcut.cpp [License: GPL (v2+)] A +72 -0 krita/ui/input/kis_abstract_shortcut.h [License: GPL (v2+)] M +16 -16 krita/ui/input/kis_alternate_invocation_action.cpp M +3 -5 krita/ui/input/kis_alternate_invocation_action.h M +16 -16 krita/ui/input/kis_change_primary_setting_action.cpp M +3 -5 krita/ui/input/kis_change_primary_setting_action.h M +218 -279 krita/ui/input/kis_input_manager.cpp M +4 -9 krita/ui/input/kis_input_manager.h A +70 -0 krita/ui/input/kis_key_shortcut.cpp [License: GPL (v2+)] A +54 -0 krita/ui/input/kis_key_shortcut.h [License: GPL (v2+)] M +17 -38 krita/ui/input/kis_pan_action.cpp M +4 -4 krita/ui/input/kis_pan_action.h M +25 -57 krita/ui/input/kis_rotate_canvas_action.cpp M +4 -9 krita/ui/input/kis_rotate_canvas_action.h D +0 -162 krita/ui/input/kis_shortcut.cpp D +0 -120 krita/ui/input/kis_shortcut.h A +287 -0 krita/ui/input/kis_shortcut_matcher.cpp [License: GPL (v2+)] A +143 -0 krita/ui/input/kis_shortcut_matcher.h [License: GPL (v2+)] M +3 -12 krita/ui/input/kis_show_palette_action.cpp M +1 -3 krita/ui/input/kis_show_palette_action.h A +72 -0 krita/ui/input/kis_stroke_shortcut.cpp [License: GPL (v2+)] A +80 -0 krita/ui/input/kis_stroke_shortcut.h [License: GPL (v2+)] M +33 -50 krita/ui/input/kis_tool_invocation_action.cpp M +3 -5 krita/ui/input/kis_tool_invocation_action.h M +19 -47 krita/ui/input/kis_zoom_action.cpp M +4 -8 krita/ui/input/kis_zoom_action.h M +6 -0 krita/ui/tests/CMakeLists.txt A +357 -0 krita/ui/tests/kis_input_manager_test.cpp [License: GPL (v2+)] C +14 -19 krita/ui/tests/kis_input_manager_test.h [from: krita/ui/input/kis_show_palette_action.h - 053% similarity] [License: GPL] http://commits.kde.org/calligra/80cb31e7938d92c59c0bec7c461186797c6a5ae8
Git commit b2b70f620b8b4d0a4168d67f04e811dfefb3f89e by Dmitry Kazakov. Committed on 13/11/2012 at 16:19. Pushed by dkazakov into branch 'calligra/2.6'. Added discrete rotation and zooming shortcuts M +10 -3 krita/ui/input/kis_input_manager.cpp M +26 -2 krita/ui/input/kis_rotate_canvas_action.cpp M +5 -0 krita/ui/input/kis_rotate_canvas_action.h M +26 -5 krita/ui/input/kis_zoom_action.cpp M +1 -0 krita/ui/input/kis_zoom_action.h http://commits.kde.org/calligra/b2b70f620b8b4d0a4168d67f04e811dfefb3f89e