otfried / ipe

The Ipe extensible drawing editor
http://ipe.otfried.org
125 stars 9 forks source link

Translation (and other transformations') behavior on (un)selected objects #459

Closed anusser closed 1 year ago

anusser commented 1 year ago

Disclaimer: This issue is more thought of as a point of discussion rather than a feature request. What I suggest is a different behavior that subjectively is more intuitive to me, but it is an opinion and I open this issue to see whether more people see it that way. I already know that some people I talked to prefer a different behavior than what is currently the case.

Currently, when being in translation mode and the cursor is far from the object that is selected, then a closer object is selected and translated instead, as described in the manual. This behavior can be quite frustrating, e.g., trying to translate a circle having the cursor on its center often does not translate the circle but another object that is close to the center.

There are two ways to avoid the behavior in the above example:

  1. Do not only consider the boundary of the circle but also the interior when deciding which object to translate.
  2. Change the behavior of translation mode.

I would go for the second option, and I suggest the following change:

Like this, one can translate a lot of different objects without exiting translation mode, but one can still get the (subjectively) expected behavior if an object is selected. The same of course also applies to rotation, etc.

What do you think?

otfried commented 1 year ago

To get feedback from others, it would probably work better to bring this up on the Ipe discussion list.

I agree that the current behaviour is not optimal, it has also bitten me. The behaviour is actually ancient, if I remember right, Ipe inherited it from idraw...

As you correctly observe, the rationale was that one very often has lots of objects on the canvas, and wants to rearrange them quickly. The current behaviour allows you to pick up an object and move it in a single mouse action, without first having to unselect the previous one - if one is careful (I often end up moving the wrong object).

Your suggestion is somewhat unorthodox - normally, one can only modify selected objects, and for instance locking layers works by forbidding to select its objects. But it sounds to me like it could work, if nobody has a better idea, it would be worth a try.

anusser commented 1 year ago

Thanks for the answer @otfried. :)

I can see that the suggestion is somewhat unorthodox. Maybe internally this could be a combined action of:

I will post it on the ipe discussion list. I also collected some data points today and both of these people would prefer my proposed behavior. I would still be interested in alternative suggestions though as it is quite a fundamental change.

otfried commented 1 year ago

Implemented in 7.2.27.

anusser commented 1 year ago

Amazing, thank you so much! :)