On 01/10/2010 03:36 PM, Krzysztof KosiĆski wrote:
I would expect that if there is no snap indicator displayed, the point I'm dragging will stay in the place it's currently at when I drop it, according to the principle of least astonishment. If there is no indication of snapping, snapping should not occur.
Ah, now I see: you're interpreting the snap indicator differently. If you see the snap indicator then snapping _has_ already occurred. The indicator has been implemented to show what we've snapped to, not to show what we'll snap to _after_ the mouse button is released.
Otherwise the snap delay setting is not useful: my movements will snap regardless of whether the snap indicator is displayed or not,
That's how it's supposed to work. Forget the snap indicator for a moment, and think about snapping to a grid. When using a grid, many users will expect all objects to be aligned to any of the grid lines, at any time; after all that's what you're using a grid for. Now when dragging an object it will become unaligned, but it should be aligned again once its released (only if snapping has been enabled ofcourse). That's why snapping is triggered when the mouse button is released. The snap delay mechanism controls how often Inkscape tries to snap while dragging the object around, but still we always snap when releasing the mouse button. The snap indicator only tells us where snapping took place.
Why don't you just turn off the snap delay in the preferences? This gives you the behavior you're looking for, or doesn't it?
It does, but only sort of. If the snap delay is zero, I can no longer make unsnapped movements.
Believe me, there are users who prefer it like this! I found that out _after_ implementing the snap delay ;-)
If the snap delay is non-zero, I have to wait for the snapping delay to expire every time I adjust the position. So there is no way for me to win. :)
Correct, you'll have to switch snapping off yourself explicitly, Inkscape will not do that for you. We should not try to guess when a user wants to snap and when not, we might guess wrong without the user noticing.
The most elegant way is to disable snapping when holding the SHIFT key, as some tools do, but unfortunately the modifier keys are already heavily contested so we will probably never get that implemented in all tools. The second best thing is to use the % key to toggle snapping, and to toggle it back on again afterwards.
Regards,
Diederik