I was testing out the demo of NG, and encountered what may be a major bug with how undo works. I was making some circles filled with gradients, and accidentally placed one in the wrong spot. When I tried to undo, however, that circle did not disappear, even when the others that were made before it did. After redoing, some of the ones on the bottom also changed appearance slightly.
Note that both screenshots were taken after having already undone and redone a couple times, so the circles on the bottom are messed up on the before and the after.
Before undoing:
After undoing:
I still have the instance of Pro Motion where the bug occurred opened, so if you would like me to do anything that would help you with debugging, just let me know.
I’m making a guess. Are you using the ellipse tool?
You may have activated undo while you haven’t set the shape on the canvas yet.
Once you have set your shape on the canvas, your drawing history’s most recent action will be set to that point.
So say, with the ellipse tool:
- You’ve proceeded to expand and set the size and shape already, but haven’t drawn it to the canvas yet.
- You’ve activated undo, 5 times.
- You’re proceeded to redo, 2 times.
- You’ve drawn the shape onto the canvas, after.
What will happen here is that those 3 actions after the actions you redid for those 2 times is lost forever. And your most recent action - which was drawing the shape on the canvas, will be your last redo action if you hit undo next time.
This happens to me a lot when I forget this behavior.
You can observe this behavior with the polygon and curve line tools too.
This doesn’t seem to be the same as what you’re talking about.
- Even after having made sure that’d I’d drawn the shape to the canvas, I could still redo all the way.
- It was impossible to get ride of the newest shape, no matter how much I used undo, while older shapes could still be undone and redone.
- Older shapes seemed to “corrupt” after being undone and redone.
Labeled for better clarity.
This one shows some of the strangeness going on with the ellipses a bit better, partway through undoing them.
Hmm… That is indeed, different.
I feel like some function is running in the bg, like a mode or something that’s causing this, but idk.
Can the issue be replicated in another project? If it does, can you post the steps here? So I’ll try replicating it on my copy of the program.
I can try, but I was holding off on messing with anything too much in case the dev wanted me to do anything (I know there’s some stuff you can do with Visual Studio or other programs that could help with debugging, but I’ve never really used those features so I’d need to know what to do). I do need to restart my computer pretty soon though, so I’ll probably give up on that.
If you want to get in touch with @jan.cosmigo real fast. I think emailing him is the best.
A bit late now, I’m afraid. I’ll try to replicate it when I get home later.
Steps for replicating:
- (Optional, but helps to highlight the glitchiness this can cause) Draw some shapes or such normally.
- Select a filled shape tool (I recommend circles, but any should work), and choose any gradient mode that requires additional user input after the shape itself has been drawn (Have tested with contour gradient and radial gradient).
- Draw the shape, but don’t click a second time to finish drawing it.
- Press undo at least once.
- Click to finish drawing the shape.
Results: It will now be impossible to use undo to remove the newly drawn shape. Undoing and redoing can also cause glitchy effects, especially where the new shape overlaps others, or if this glitch is done twice or more.
As a reminder: always mention @jan.cosmigo (i.e. his account) when you require his attention, because this will automatically notify him that he has been mentioned in a thread, thus calling his attention to the matter. Otherwise, a post/thread might go by unnoticed, in the midst of all the posts.
Sorry @Midnight for this late reply. This glitch is fixed with 7.3.
With 7.3 I re-coded all tools and made them more stable when it comes to interrupting them, e.g. by switching a frame, by using undo in the middle of tool processing etc. .
1 Like