Steps to reproduce:
- create and save an abstraction called myabs.pd. Close it.
- create and save a new patch in the same folder called main.pd
- in main.pd instantiate a [myabs] object
- open the [myabs] object, modify it without saving, close it.
- in main.pd, in edit mode, click on the [myabs] object
Expected result: nothing should happen, except the [myabs] instance should be selected
Observed result:
myabs.pd is opened in its own window, and a dialog window pops up asking "Discard changes in myabs.pd?"
Besides the question making no sense at all, note that this is the old pd-vanilla-like message, that in Pd-Extended is usually replaced by the opposite question "Save changes in...". But I am using Pd-Extended
If you select "yes" (to discard changes), then the "*" in the windows' title bar disappears, but the content of the window doesn't revert to as it was before being changed. So you're seing a completely inconsistent situation, in which:
- you have modified the contents of the instance of [myabs]
- yet myabs.pd's window doesn't show the "*" in the title bar, as if it had been saved after changing it.
Pd-Extended 0.42.5
Ubuntu 10.04 32 bit
I can't set the priority but this is definitely critical.
Anonymous
This is supposed to be a 'feature' -- if you retype into an abstraction's "box" that re-opens teh abstraction,
potentially losing any edits you might have made. If you click 'discard', well, it just forgets that you changed
anything. (Another possibility would be to re-load teh abstraction then and there, but it's going to get reloaded
anyway, I think...?) It's confusing but I'm not sure how to do it better.
Oh I understand!!!!!
But what if you don't want to retype into the box at all??
The problem is that if you just want to MOVE an object, and you click and drag, it will then select the text inside and allows you to retype, which is often (most of the times I would say) not what you want if you have DRAGGED the object and moved it. By the way that is kind of annoying regardless of the issue being discussed here: when you drag and move an object, 98% of the times you are not going to retype into the box, and the remaining 2% of the time you would happoly click on it again,,, ¿no?
I think one way of doing it better would be:
1) When you click and drag an object (as opposed to just clicking on it), it would _not_ change to the state where you edit its text (unless you click on it again).
2) In the case of an abstraction that has been modified inside, and if you do click on it without dragging, the dialog asking whether to discard the changes would not appear immediately but only when the old abstraction is really about to be destroyed. This way the question is presented only when you are really going to loose the changes made to the abstraction.
Note that when you click on an object (preparing to retype) and then you click outside it without retyping, it is _not_ reloaded (which is fine imho).
I'm not sure of point (2). Point (1) alone would already improve the situation a lot in my opinion.
Seems like it should pop up this dialog only if the text in the object box is changed, otherwise its jumping the gun, and a bit confusing.