Bug 443826

Summary: Seems that "Activate Move Tool" action should behave like Ctrl in Photoshop, but it doesn't
Product: [Applications] krita Reporter: rybak77.lol
Component: Shortcuts and Canvas Input SettingsAssignee: Krita Bugs <krita-bugs-null>
Status: CONFIRMED ---    
Severity: normal CC: dimula73
Priority: NOR    
Version First Reported In: 5.0.0-beta2   
Target Milestone: ---   
Platform: Microsoft Windows   
OS: Microsoft Windows   
Latest Commit: Version Fixed/Implemented In:
Sentry Crash Report:
Attachments: Videos with observed and expected results.

Description rybak77.lol 2021-10-16 10:57:38 UTC
SUMMARY
Repeated use of the "Activate Move Tool" action shouldn't move or erase content of the image that was not selected initially (before the first use of the "Activate Move Tool" action). Example of correct behavior - Ctrl in Photoshop.

STEPS TO REPRODUCE
1. Bind hotkey for "Activate Move Tool" action in the Canvas Input settings. For example - X + left mouse button(LMB).
2. Open an image.
2. Select part of the image with any selection tool.
3. Press X, move selected content with the LMB so that the selection touches previously unselected content of the image.
4. Release X and the LMB.
5. Press X, move selected content with the LMB again.

OBSERVED RESULT
Previously unselected content is moved. If previously selected content overlaps previously unselected content, the previously unselected content is erased.

EXPECTED RESULT
Previously unselected content isn't moved. If previously selected content overlaps previously unselected content, the previously unselected content isn't erased.
Comment 1 rybak77.lol 2021-10-16 11:05:23 UTC
Created attachment 142496 [details]
Videos with observed and expected results.
Comment 2 Dmitry Kazakov 2022-01-06 09:28:00 UTC
I can confirm the issue. Though this behavior is somewhat "by-design". When the user releases the X key, the move tool becomes deactivated, effectively baking the move operation into the destination layer. 

I will have to think how we can fix this issue. The most obvious solution would be do add a "continued transform" mode to the move tool. But it'll make it extremely complicated maintenance-wise.