Why do we need infinite undo? It often seems to cause problems in other programs. CorelDraw allows you to set the level as a preference. You can set it at 10000 if you want but I set mine at 20 and never need to change it. Why not put it into preferences with a low default value of say 10 or so, and allow people to set higher if they want?
We used to have a limit. I talked us into removing it. It was SO incredibly annoying when you run into the limit and cannot undo any further. I also argued that a vector editor undo is much less memory-hungry than a bitmap editor, so a limit is less necessary.
Now a limit, especially a low limit, will affect everyone. That's bad because the "low memory because of undo list" problem only affects a minority (if it really affects anyone at all).
Here's what I think needs to be done instead of adding a limit:
- optimize, optimize, optimize
- add a "flush undo" command for those who really want to free some memory but don't want to restart the program