Undo stack, after executing Macro, has wrong properties disabled #45825

Closed
opened 2015-08-17 16:10:50 +02:00 by Jose Conseco · 7 comments

In attached blend file I do simple macro (simple_operator):

  • subdivide mesh (in edit mode)
  • perform cut with knife tool, by user
  • deselect all.
    macroUndoStackBroken.blend - blend file with macro
    Now, I know knife tool dosen't support undo, so it is greyed out in F6 panel, after executing this script and calling operator. But undo stack order is reversed from what I see.
    UndoBlend.jpg
    What I mean is, operations performed by macro, after knife_tool, should have available undo properties, but they are disabled. What blender does is, it enables F6 properties, for operations performed before knife. This makes no sense, because as soon as you change property of operator performed before knife, knife operation gets cancelled, and everything after that gets canceled too. So you loose all operations performed after knife operation.
    How undo stack should work for macro is:
  • all F6 properties for operations performed before knife should be disabled (unsupported)
  • properties for operations performed after knife should be available - this way they could be re-executed after property change in f6 panel.
In attached blend file I do simple macro (simple_operator): - subdivide mesh (in edit mode) - perform cut with knife tool, by user - deselect all. [macroUndoStackBroken.blend](https://archive.blender.org/developer/F224857/macroUndoStackBroken.blend) - blend file with macro Now, I know knife tool dosen't support undo, so it is greyed out in F6 panel, after executing this script and calling operator. But undo stack order is reversed from what I see. ![UndoBlend.jpg](https://archive.blender.org/developer/F224859/UndoBlend.jpg) What I mean is, operations performed by macro, after knife_tool, should have available undo properties, but they are disabled. What blender does is, it enables F6 properties, for operations performed before knife. This makes no sense, because as soon as you change property of operator performed before knife, knife operation gets cancelled, and everything after that gets canceled too. So you loose all operations performed after knife operation. How undo stack should work for macro is: - all F6 properties for operations performed before knife should be disabled (unsupported) - properties for operations performed after knife should be available - this way they could be re-executed after property change in f6 panel.
Author

Changed status to: 'Open'

Changed status to: 'Open'
Author

Added subscriber: @JoseConseco

Added subscriber: @JoseConseco
Member

Added subscriber: @Blendify

Added subscriber: @Blendify

Added subscribers: @ideasman42, @Sergey

Added subscribers: @ideasman42, @Sergey
Campbell Barton was assigned by Sergey Sharybin 2015-08-24 10:50:39 +02:00

Don't really think we can support any operator re-do here, afair macro is being re-executed completely, meaning operators both prior and post knife can not be redone.

@ideasman42, mind having a look here? Thanks :)

Don't really think we can support any operator re-do here, afair macro is being re-executed completely, meaning operators both prior and post knife can not be redone. @ideasman42, mind having a look here? Thanks :)

This issue was referenced by blender/blender@74fae33ee5

This issue was referenced by blender/blender@74fae33ee550336c5eb343873ea9c38605e5802f

Changed status from 'Open' to: 'Resolved'

Changed status from 'Open' to: 'Resolved'
Sign in to join this conversation.
No Milestone
No project
No Assignees
5 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: blender/blender-addons#45825
No description provided.