<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.kde.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.6"
          urlbase="https://bugs.kde.org/"
          
          maintainer="sysadmin@kde.org"
>

    <bug>
          <bug_id>302758</bug_id>
          
          <creation_ts>2012-06-29 18:07:45 +0000</creation_ts>
          <short_desc>Zoom center is wrong (was: Canvas Interaction feedback)</short_desc>
          <delta_ts>2012-11-20 16:13:47 +0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>2</classification_id>
          <classification>Applications</classification>
          <product>krita</product>
          <component>Usability</component>
          <version>git master (please specify the git hash!)</version>
          <rep_platform>Compiled Sources</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>regression</keywords>
          <priority>NOR</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="David REVOY">info</reporter>
          <assigned_to name="Dmitry Kazakov">dimula73</assigned_to>
          <cc>halla</cc>
          
          <cf_commitlink>http://commits.kde.org/calligra/b2b70f620b8b4d0a4168d67f04e811dfefb3f89e</cf_commitlink>
          <cf_versionfixedin></cf_versionfixedin>
          <cf_sentryurl></cf_sentryurl>
          <votes>0</votes>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1271047</commentid>
    <comment_count>0</comment_count>
    <who name="David REVOY">info</who>
    <bug_when>2012-06-29 18:07:45 +0000</bug_when>
    <thetext>Here are 2 feedback I wrote on the mailing list thread &quot;Merged the first bits of Canvas Interaction&quot; (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 &apos;Ctrl-space zoom&apos; to &apos;space pan&apos; and vice versa.
When pressing Ctrl+Space+click to zoom, if I keep space hold and release Ctrl it&apos;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:</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1279705</commentid>
    <comment_count>1</comment_count>
    <who name="Halla Rempt">halla</who>
    <bug_when>2012-07-29 12:59:07 +0000</bug_when>
    <thetext>Ack...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1283017</commentid>
    <comment_count>2</comment_count>
    <who name="Halla Rempt">halla</who>
    <bug_when>2012-08-08 19:20:00 +0000</bug_when>
    <thetext>marking as regression.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1314450</commentid>
    <comment_count>3</comment_count>
    <who name="Dmitry Kazakov">dimula73</who>
    <bug_when>2012-11-11 09:00:41 +0000</bug_when>
    <thetext>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.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1314457</commentid>
    <comment_count>4</comment_count>
    <who name="Dmitry Kazakov">dimula73</who>
    <bug_when>2012-11-11 10:15:06 +0000</bug_when>
    <thetext>Pressing Ctrl, then holding &apos;+&apos; or &apos;-&apos; keys enables Keys Autorepeat that has to be disabled.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1314845</commentid>
    <comment_count>5</comment_count>
    <who name="Dmitry Kazakov">dimula73</who>
    <bug_when>2012-11-12 15:34:53 +0000</bug_when>
    <thetext>Git commit ac7eea24b10c0920fbef3e65f59db2722998d30e by Dmitry Kazakov.
Committed on 12/11/2012 at 16:33.
Pushed by dkazakov into branch &apos;krita-new-move-tool-kazakov&apos;.

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</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1315173</commentid>
    <comment_count>6</comment_count>
    <who name="Dmitry Kazakov">dimula73</who>
    <bug_when>2012-11-13 15:19:34 +0000</bug_when>
    <thetext>Git commit 7a0132427816a5713595fa2aaa0a6f4017d32b45 by Dmitry Kazakov.
Committed on 13/11/2012 at 16:19.
Pushed by dkazakov into branch &apos;krita-new-move-tool-kazakov&apos;.

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</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1317008</commentid>
    <comment_count>7</comment_count>
    <who name="Dmitry Kazakov">dimula73</who>
    <bug_when>2012-11-20 16:13:46 +0000</bug_when>
    <thetext>Git commit 80cb31e7938d92c59c0bec7c461186797c6a5ae8 by Dmitry Kazakov.
Committed on 12/11/2012 at 16:33.
Pushed by dkazakov into branch &apos;calligra/2.6&apos;.

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</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1317009</commentid>
    <comment_count>8</comment_count>
    <who name="Dmitry Kazakov">dimula73</who>
    <bug_when>2012-11-20 16:13:47 +0000</bug_when>
    <thetext>Git commit b2b70f620b8b4d0a4168d67f04e811dfefb3f89e by Dmitry Kazakov.
Committed on 13/11/2012 at 16:19.
Pushed by dkazakov into branch &apos;calligra/2.6&apos;.

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</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>