Bug 435365

Summary: Eraser mode effects fill with foreground color
Product: [Applications] krita Reporter: Squeaky Pancakes <squeakypancakes>
Component: GeneralAssignee: Krita Bugs <krita-bugs-null>
Status: RESOLVED INTENTIONAL    
Severity: normal CC: ahab.greybeard, tamtamy.tymona
Priority: NOR    
Version First Reported In: unspecified   
Target Milestone: ---   
Platform: Other   
OS: Linux   
Latest Commit: Version Fixed/Implemented In:
Sentry Crash Report:

Description Squeaky Pancakes 2021-04-04 21:36:33 UTC
SUMMARY
Having eraser mode set makes the fill with background/foreground and special fill background/foreground will erase selection.

STEPS TO REPRODUCE
1. put down a color
2. select an area 
3. select a different color
4. set eraser mode/switch to an eraser brush
5. Use edit > fill with foreground or edit > fill special > fill with foreground 

OBSERVED RESULT
The selection will erase

EXPECTED RESULT
The area should be filled with the newly selected color.

SOFTWARE/OS VERSIONS
Linux: Devuan 3 and Atrix
Krita 3.0 to 4.4.3

ADDITIONAL INFORMATION
Tested this with 4.4.3 but noticed it worked all the way back in 3.0 but seems to have gotten more noticeable in 4.0 where you can set eraser mode with a selection tool active. It might work in older versions but I was testing with the official appimages.
Comment 1 Ahab Greybeard 2021-04-05 06:10:14 UTC
The manual has this to say about eraser mode:

"By toggling the E key, your current brush switches between erasing and painting. This erasing method works with most of the tools. You can erase using the line tool, rectangle tool, and even the gradient tool."

And also the Fill tool, it would seem.
Comment 2 Squeaky Pancakes 2021-04-13 15:21:38 UTC
(In reply to Ahab Greybeard from comment #1)
> The manual has this to say about eraser mode:
> 
> "By toggling the E key, your current brush switches between erasing and
> painting. This erasing method works with most of the tools. You can erase
> using the line tool, rectangle tool, and even the gradient tool."
> 
> And also the Fill tool, it would seem.

Erase filling seems counter intuitive to me especially when there is already a clear tool that does just that. Further more if I'm using the freehand select tool the eraser mode is greyed out which looks like it wont have an effect, which it wont on the selecting of things but things like the fill tool which can't show whether it will effect it or not but its most likely going to be used with a selection.
Comment 3 Ahab Greybeard 2021-04-13 15:49:21 UTC
Erase filling works for all selected areas no matter which selection tool was used to select them.

Selection tools are not painting tools so the Erase icon could be expected to be greyed out for these as it is for the Transform tool and Move Tool etc.

However, it is not greyed out for the Rectangular, Elliptical and Polygonal selection tools. I think that's an oversight that needs to be reported even though it has no effect on functionality.

Only a developer can say what's supposed to happen.
Comment 4 Tiar 2021-08-22 21:32:11 UTC
It sounds like it's intentional behaviour. @Squeaky if you get confused about it, maybe you could start a discussion on krita-artists.org on how to change the design to make this behaviour more obvious, so users won't get confused.

"Erase filling seems counter intuitive to me especially when there is already a clear tool that does just that."
This is not true though, Fill Tool has lots of different options which makes it much more powerful in the Erase mode than the Clear feature. Clear just clears the whole selection; Fill Tool can for example erase only parts with the same color, or clear the whole selection, or it can erase just one part of the selection if your selection has multiple parts (like if you selected a few rectangles at once).
And the selection is irrelevant; Fill Tool can work without a selection, too. (Clear can work without a selection too, clearing a whole layer; but Fill Tool has options that finetune its behaviour to only clear what you want to clear).

Basically, Fill Tool is more advanced than just Clear, so we can't remove the Erase mode from Fill Tool without removing functionality from Krita (which would be bad, since there are always users who use the functionality, even if you don't use it).