Page MenuHome

Wrong Undo on curves
Closed, InvalidPublic

Description

System Information
Windows 7 64, HD 5770

Blender Version
Broken: 2.71 release & e0d8e62

Short description of error
Extrude and Undo on a curves startpoint messes up the point order (numbering?) when Undo is executed in a different "Editmode session".
This negatively affects points that are assigned to a Hook.

Its complicated to describe, please take a look in the file.

Exact steps for others to reproduce the error

Setup for Hook:

  1. Add a NurbsPath (Curve), add an Empty.
  2. Give Curve a Hook Modifier.
  3. Set Empty as Hook, and assign the middle control point of Curve.
  4. Move Empty, Curve point should move aswell.

Bug:

  1. Go into Curves Editmode.
  2. Select the starting point and extrude one time.
  3. Leave Editmode and enter again = different Editmode.
  4. Undo your extruded starting point with STRG+Z.

Problem:
The assigned Hook point has changed. (move Empty)
It has shifted one point forward, related to extrude actions.

Event Timeline

Karja Krähwald (karja) raised the priority of this task from to 90.
Karja Krähwald (karja) updated the task description. (Show Details)
Karja Krähwald (karja) edited a custom field.
Bastien Montagne (mont29) lowered the priority of this task from 90 to 50.Jul 29 2014, 12:33 PM

Committed the fix, please give it a good test with tonight's builds from builder.b.o.

Hey,

I have tested bcbbed0 from Thu Jul 31 15:12:50 2014 with the same file.

  • If i extrude the startpoint 1 time, it works in every scenario.
  • If i extrude the startpoint 2 times, the Hookpoint changes now without additional Undo after leaving Editmode. I cant correct this with Undo in the same Editmode, i now have to be in a different Editmode for Undo.
  • If i extrude the startpoint 3 times, the Hookpoint stays correct. But Undo dont work correct anymore for the Hookpoint, no matter what Editmode. Also Blender tends to crash quite often if i Undo (Object&Editmode).
Sergey Sharybin (sergey) changed the task status from Resolved to Unknown Status.Aug 1 2014, 6:25 AM
Sergey Sharybin (sergey) changed the task status from Resolved to Unknown Status.Aug 1 2014, 8:35 AM

Eh, was reverting previous fix which wasn't correct. Still looking into a more proper one.

Sergey Sharybin (sergey) changed the task status from Unknown Status to Unknown Status.Aug 1 2014, 9:39 AM

After rather long investigation we came to a conclusion this is not gonna to work reliably with the current separation of global and local undo stacks. Even if steps above are supported there are still loads of ways to confuse the system.

Also, the same exact issues happens for the meshes, they might be not so trivial to reproduce, but it's still possible to have rather simple setup which demonstrates the same issue.

Moving it to a undo stack TODO: http://wiki.blender.org/index.php/Dev:2.5/Source/Development/Todo/UserInterface#Undo_stack

There are quite a few issues are caused by the local undo stacks and modifying global data..