The crosshair of the Fill Tool (Paint Bucket icon) is miss positioned and will only fill a pixel if the user clicks in the upper left quadrant of the pixel, or just outside the upper left bounds of the pixel. Reproducible: Always Steps to Reproduce: 1. Make a one pixel brush and paint one black pixel on the canvas. 2. Select the Fill Tool and a yellow color. 3. Select the Fast mode: checkbox. 4. Zoom in and click on the bottom half of the black pixel. 5. Notice the background is filled yellow instead. 6. Undo, then click on the right half of the black pixel. 7. Notice the background is filled yellow again. 8. Undo, then click on the upper left of the black pixel. 9. Notice the black pixel is now filled yellow. 10. Undo, then click just outside the upper left bounds of the pixel. 11. Notice the black pixel is now filled yellow. Actual Results: The Fill Tool only fills the original pixel if the user clicks the upper left quadrant of the pixel; or just outside the upper left bounds. Expected Results: The Fill Tool should fill the original pixel with the new color no matter where the user clicks within the bounds of the pixel. And it should fill the background if the user click anywhere outside the pixel bounds.
I decided to fix this bug. It was a trivial case of using rounding to get the pixel the user was clicking at. Instead of using rounding, the code now uses the convertToIntPixelCoord function, which does the right kind of math. https://quickgit.kde.org/?p=krita.git&a=commit&h=67c0a61cc548669fee1f20128f30945c672cc88a