[PD] enhance pd-extended with pd-l2ork featues ?
Ivica Ico Bukvic
ico at vt.edu
Mon Jan 21 07:16:46 CET 2013
On 01/21/2013 12:15 AM, Jonathan Wilkes wrote:
> Also see the end of:
> http://www.youtube.com/watch?v=wTPZxcgWoI0
>
> When undoing the creation of an object or objects, at some point Pd-l2ork will move
> the object to the place where the mouse happened to be hovering when the user clicked
> <ctrl-1> to get an empty box dangling from the mouse. But the user never actually
> anchored the object there-- they only anchored it somewhere once they clicked the
> mouse button. Thus, your undo history erroneously adds an object placement event
> that was never performed by the user in the first place.
>
> Theoretically the corresponding undo event should make the object dangle from the
> mouse again, but that's of very little practical value and would just bloat the undo
> history with an extra step for every object in the chain. Instead this event should
> simply not be added to the undo history. I don't know the innards of pd well, but those
> "dangle" events should all have a single "0" as a coordinate so maybe you can check
> for that.
>
> -Jonathan
>
>
That is not a bug. That is how pd instantiates objects. As soon as your
cursor touches canvas, it will instantiate an object at the last known
cursor position (if the cursor is off-canvas) or next to mouse cursor
and then enable motion for the object to follow the cursor until a mouse
clicks (there is an exception when autopatching in which case motion is
not enabled, but that is not relevant to this example). So, if you
create an object without having a mouse on canvas, then move mouse onto
it, the object will instantiate where you had your cursor the last time
and then immediately move (since the startmotion was triggered) next to
your cursor once you've positioned it back over the canvas. So, in
essence there are 2 steps undo is keeping track of. Yes, this addition
adds extra step but is a lot easier to manage than coming up with yet
another exception on how the editing works. Doing what you suggest could
easily obliterate undo and annoy user when they do series of undos and
then suddently the object is back hooked onto mouse and the next thing
you know, the undo has rebranched since it assumes that the user is now
wanting to do something new from that spot onwards making them lose
forward undo history. This is all because pd first instantiates objects,
then asks question where the object should go. While ideally this one
step could be skipped, it would require a fairly hefty rewrite for a
mere skip of one undo step...
More information about the Pd-list
mailing list