Page MenuHome

Canceling extrude doesn't undo the extrude, only the distance moved.
Closed, ArchivedPublic


System Information
Operating system: Linux-4.19.20-1rodete1-amd64-x86_64-with-debian-rodete 64 Bits
Graphics card: Quadro 600/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 390.87

Blender Version
Broken: version: 2.80 (sub 53), branch: master, commit date: 2019-04-02 08:15, hash: rB0a2e59a7269c
Worked: (optional)

Short description of error
Canceling an extrude with right-click (using default key map) leaves the extruded face there, just with zero-length edges connected it to the place it was extruded from.

Exact steps for others to reproduce the error
With default startup .blend:

  1. enter edit mode
  2. enter face select selection mode
  3. select the top face
  4. hit E to start extruding
  5. move the mouse a bit to extrude some distance
  6. hit right-click

Expected: operation completely canceled, so go back to having the default cube.
What happens: the top face is now extruded with a zero length move, which you can verify by using 'g' to move the top face.

I guess this happens because extrude is a macro of two steps: first extrude_region, then shrink_fatten, with the latter doing the actual move after the extrude, and the cancel keymap only cancels that part. Is this behavior as intended? Asking in the irc chat found at least one person who thought not -- that the expectation should be that the cancel key cancels the whole operation.
I imagine if this is a bug, it might be a bug in other places where macros are composed to implement the complete operation.



Event Timeline

This has been reported before and not considered a bug. The problem is that it's actually useful to be able to cancel just the transform, a lot of users depend on this.

This is the same behavior as in 2.79 (pressing escape had the same result). An actual undo reverts the extrude.

I would tend to agree that it’s weird - and it causes issues if the user doesn't realize they have zero-sized faces.

In the past, this behavior was used as a way to do face insets.

You would extrude, then right-click to cancel the extrusion, then scale to inset. But now that we have the Inset operator/tool, it’s not so necessary to keep, IMO.

You could even emulate it by insetting with a distance of zero, for the times where you actually do want to extrude without any offset.

In any case, agree this isn't a bug - it's a design issue/topic.

Yes, it's how it behaves in 2.79 and it's how personally I like it to work. But in 2.79, the visual feedback so that the user can realize that there are zero area faces was through face dots, which are disabled by default for 2.8.