Smudge tool ignores layer position in 2.99
Environment/Versions
- GIMP version: 2.99.14
- Package: Installer from gimp.org
- Operating System: Windows 10
Description of the bug
If a layer's origin (top-left) isn't aligned with the top-left corner of the canvas, using the smudge tool will result in an offset as if the layer's true position was originated from top-left of the canvas.
- Newly created layers from a floating selection that never had their origin aligned with the canvas' act the same.
- Making a layer same size as the canvas fixes the issue because that makes the layer's origin aligned.
For example: 3 separate layers with their own distinct content. What we see:
What smudge tool sees:
This results in: Any attempt to make one single click with the smudge on the visible layer will update to what the smudge tools sees (in the above example the pixels will be replaced with transparency because from the smudge tool's POV there is nothing there)
More examples:
Normal behaviour: (trying to smear along a straight line - first click on the red dot and then a second at a distance)
Layer position changed and attempt to do the exact same thing:
First click "updates" the view:
Second click probably updates the updated thing
Reproduction
Is the bug reproducible? Always
Reproduction steps:
- Open/Make new image/layer with some patterns on it (alpha channel not needed)
- Position the layer away from the top-left corner of the canvas
- Use smudge tool on the layer
…
Expected result: Pixels remain in the same position when the smudging begins
Actual result: Pixels are replaced
Additional information
If my memory is correct I noticed this behaviour before 2.99.14 too (2.99.12) once but I considered it as a project specific glitch when I tried to reproduce it on a new project with no success (didn't suspect it was related to layer postion at that time so I didn't try with offset layer) I usually neglect the native smudge tool as there are better alternatives to work with, though it's the only one capable of using textured brushes and sometimes I do experiments. That was the incentive to give it another chance to see if it can be a useful part of my work and so resulted in a proper discovery of this bug. That being said, other tools doesn't seem to be affected by whatever is broken here.