Ok.

Previous example expressed using numbers:
1. User performs 10 undos, (-10) he's now at undo history step -10.
2. User performs 2 redos. (+2) He's now at undo history step -8. The entire history is still there as usual.
3. User performs some operation. Normally this would wipe history step -8 through step 1 so the user can not at any time redo those steps.
What I'm Felipe is suggesting is that, even if you do at least one operation, the original step -8 through step 1 are kept.
As the user performs the operation he would be at history step 1-A of a new history branch.
4. Now, if the user performs a number of undos that brings him back to any history step on or before the -8 (branching) step, the oldest history takes priority again.
5. User finally performs 8 ( or more) redos. He's now back at the original history step 1 (not 1-A).


In other words
: You could undo 10 times, then (accidentally) perform a new operation, then still be able to press undo and then, finally, press redo 10 times to bring you back to where you started.

(I think the level of intrusiveness could be kept very low if, like mentioned earlier, the number of new operations allowed before deleting "original future history steps" is kept down to maybe only 1 "new/branching" operation. Like Felipe points out, it saves you from those awkward moments of deleting all the future redo-steps while at the same time, it would remain totally invisible to all users performing more than 1 "new/branching" operation.

Sorry if I'm being unclear.

/JimmyVolatile


On Fri, Jun 12, 2009 at 11:18 PM, Sam Mason <sam@...2002...> wrote:
On Fri, Jun 12, 2009 at 09:47:48PM +0200, JimmyVolatile wrote:
> Ok. Suggestion: Always give priority to oldests history when re-doing.
>
> If the user does 10 undos and 2 re-dos he'd be at "undo-step" 8. He then
> does some operation, say, move a shape 1 pixel. He's now at step 1 of a new
> branch of actions. He presses undo 1 or more times, going back to the
> original history branching point or even beyond. The newest branch is at
> this point deleted and if the user presses redo again 8+ times, he'll be
> back at where he started before undo-ing.
>
> I do not know if this is a good idea but at least it is non-intrusive to the
> user....

I'm struggling to follow the example, but it sounds a lot like the way
Emacs handles undo/redo---i.e. they're the same, you undo to undo undos!

It's nice for some tasks, but would be a major deviation from almost
every graphical program I've used, and in that regard it's probably a
bad UI design choice but it's not so novel that nobody has tried it
before.

--
 Sam  http://samason.me.uk/

------------------------------------------------------------------------------
Crystal Reports - New Free Runtime and 30 Day Trial
Check out the new simplified licensing option that enables unlimited
royalty-free distribution of the report engine for externally facing
server and web deployment.
http://p.sf.net/sfu/businessobjects
_______________________________________________
Inkscape-user mailing list
Inkscape-user@...2249...sourceforge.net
https://lists.sourceforge.net/lists/listinfo/inkscape-user



--
Mvh

Jarl Arntzen » +47 97082449 » Skype: jarlarntzen