Feedback on Magnetic Lasso tool behavior

I’ve just had my first experience with the magnetic selection tool and it was miserable enough that I signed up here to complain about it. The relevant context is that I didn’t have my keyboard with me for the majority of the experience.

First off, if I complete a full selection with the tool and then switch to another tool, say, a brush, not only does my selection vanish completely but the entire selection tool stops working. I had to restart krita five times before I figured out that you can confirm the selection by going to Selection > Reselect. The only way to cancel the selection without a keyboard is selecting a different tool, but in order to avoid the tool breaking you’d better do it before you complete a selection. I’d like if both cancelling and confirming selections were available through buttons in the Tool Options docker, similarly to how the Crop action is available in the Crop tool’s options.
(By the way, the reason the Polygon Select Tool doesn’t need those options is because it confirms a selection immediately after completing one. A cancel is as easy as completing a selection and undoing it.)

Though, the Magnetic Selection Tool doesn’t confirm the selection automatically because the points are editable after the fact. This in itself is fine, but the thing you can actually drag seems to be around the end of the selection line rather than the little square handle that each point has that changes color when you hover over the drag-able point. Depending on the zoom level, this offset can make most of the handle not react to anything (and you can actually turn multiple of them red at the same time even though only one will react to a drag). So when trying to modify points, you’re likely to accidentally make more of them. I’d like if the handle was actually fully functional as a handle.

So, you have an extra point that you want to delete. The current way to do this is to drag the point out of the canvas area. This, however, forces you to completely abandon your working position and change the view so that you can see past the canvas. The new zoom level might make it incredibly difficult to pick out the one point you wanted to remove if they’ve all ended up too close to tell. And if you miss your point now at the beginning of the drag, you’ll instead have a couple hundred points running along your image and you might as well start over with the selection. I’d like if the way of disposing unneeded points was to merge them into other points when they get close enough. Such behavior can be found in 3DCG applications and in tools that allow you to modify curves by dragging around points. It could even lead to users being able to backtrack their interactive selection lines by going over them in the opposite direction, allowing for big mistakes to be removed easily.
Another reason for abandoning the drag outside of the canvas to delete idea is that selection tools should generally function outside of the canvas bounds. Layers might still have content there, and users might try to select things touching the edges of the canvas by selecting outside the canvas. Currently, the magnetic selection tool can’t be used in this way, most probably because points aren’t allowed to exist out of the canvas bounds.

Lastly, the minimum anchor gap shouldn’t be 20 pixels. I tried selecting something that had a part smaller than that, and the tool just cut through the entire thing instead of going along the edge. I understand why you might not want to have the number too small, but 20 pixels can very well be too big for some things.

To summarize:

  • Add Cancel Selection and Confirm Selection as actions in the Tool Options docker
  • Correct the handle bounding box
  • Replace the drag-outside-the-canvas method of deleting points, hopefully with something that lets users remove lots of them at once
  • Make the tool work outside the canvas area
  • Allow for smaller Anchor Gaps

As an aside, the tools that make use of Shift + Z should all have the action available in Tool Options.
And, I hope it’s fine for me to resurrect this thread. The edge detection of this tool seems great, and I’d love to be able to use it properly.

1 Like

Thanks for joining us and giving the feedback. However I think we need a new topic for this. Please don’t bump old topics. I will move this to new topic.

Thank you

1 Like

Your suggestions are good except the anchor gap value thing. I mean it can be changed if you know you are working on an image where it may not work and finding the default is hard. with some more testing we can may be arrive at a good default value. Considering this was the debut of the tool, there will always be some bugs. Thanks for evaluating this thoroughly, I hope the devs find time to improve it more.

1 Like

Thank you, I can understand the frustration, :slight_smile:.

Actually, I had this in my mind after facing some issues while using the tool with a tablet. Unfortunately, I wasn’t able to make some time to implement this. I will put this in my TODOs and see it as soon as possible.

This is a bit difficult to address, with mouse you can be pretty precise but with a tablet, people were facing issues in selecting the point and dragging it around, had to make it zoom independent. The only thing I could think of is to offer a switch to toggle the anchors to zoom independent or not.

Honestly this one is difficult to address, we tried double click/tap to delete an anchor or to add anchor in between 2. But that had its own set of problems, notably Qt triggered both single click and double click for a double click event, you can’t do a double click with a pen in default settings. My suggestions is not to delete the anchor if you can’t and rather align it correctly. Sorry, thats the only thing I can say, until there is a feasible way to tackle this.

If you require that amount of precision, I suggest using the other selection tools, cause I don’t think the algorithm can pick edges this precise in the first place.

1 Like

Okay this is in the pipeline, hopefully will be available by the next version.