Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Using Blender-style 3D shortcuts in succession without clicking to confirm does not add them to Undo/Redo History #96527

Closed
ev13bird opened this issue Sep 3, 2024 · 0 comments · Fixed by #96530

Comments

@ev13bird
Copy link
Contributor

ev13bird commented Sep 3, 2024

Tested versions

  • Reproducible in: 4.4.dev [8120e03], 4.4.dev.1, and 4.3.stable

System information

Godot v4.4.dev (8120e03) - Windows 10 - Vulkan (Forward+)

Issue description

When using the Blender-inspired "Begin Translate/Rotate/Scale Transformation" shortcuts, and pressing them in succession without clicking to confirm, only the final transformation is added to the undo/redo History.

For example:

  • Press G to translate, and move a model by 1 unit.
  • Without left-clicking to exit this transformation action, press S to scale, and scale the model up to 2x.
  • Without left-clicking to exit this transformation action, press R to rotate, and rotate the model by 45 degrees.
  • Left click to confirm.
  • Observe the Undo/Redo History, containing only the latest Rotate transformation.
confirming.mp4

This also occurs when pressing escape to cancel the transformation; only the latest transformation is canceled, and all previous transformations are applied without adding to the undo/redo history.

canceling.mp4

These shortcuts were proposed in godotengine/godot-proposals#1215, and implemented in #56543.

Steps to reproduce

  • In Editor Settings -> Shortcuts -> Spatial Editor, set the:
    • "Begin Translate Transformation" to 'G'
    • "Begin Rotate Transformation" to 'C' ('R' conflicts with default "Scale Mode" shortcut)
    • "Begin Scale Transformation" to 'S'
  • Create a new scene, with a Node3D as its root.
  • Add a CSGBox3D as the sole child of the root Node3D, and select the CSGBox3D.
  • Press 'S' to begin scaling the CSGBox3D, and move the cursor to scale it 2x larger.
  • Without clicking to confirm the scale transformation, press 'G' to begin translating the CSGBox3D, and move the cursor to translate it away from the world origin.
  • Click to confirm.
  • Note in the History editor dock that only the Translate transformation has been added to the editor's undo/redo stack.
    The Scale transformation has not been added to the history.
    Undoing the latest action will undo the translation, and attempting to undo further will not undo the scale action.
  • Repeat with any other combination of transformations before clicking to confirm, to verify that only the final confirmed transformation is added to the undo/redo history.
  • Repeat with any other combination of transformations before pressing escape to cancel, to verify that only the final transformation is canceled, with no new entries at all in the undo/redo history.

Minimal reproduction project (MRP)

N/A

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants