Skip to content

"Disable All Blocks" lacks reliable Undo functionality and overwrites existing block states #3971

Description

@daki7711

Describe the bug

When a user has a mix of enabled and intentionally disabled blocks in the workspace, selecting the global "Disable All Blocks" command via the workspace context menu can lead to a state that is difficult or impossible to recover from.

Destructive state overwriting: If a user subsequently clicks "Enable All Blocks", all blocks in the workspace are enabled. This inadvertently destroys the user's intended setup by force-enabling blocks that were supposed to stay disabled.

Affects

  • Designer
  • Blocks editor
  • Projects Explorer
  • Android Companion
  • iOS Companion
  • Android Compiled APK/AAB
  • iOS Compiled IPA
  • Buildserver
  • Debugging
  • Other... (please describe)

Expected behavior

The global "Disable All Blocks" action should push a clean snapshot to the Undo stack. Furthermore, the workspace should ideally keep track of blocks that were already disabled so that a subsequent "Enable All Blocks" only toggles the blocks affected by the bulk action.

Steps to reproduce

  • Open any project with multiple top-level blocks.
  • Intentionally right-click and Disable one or two specific blocks.
  • Right-click on the workspace empty space and select "Disable All Blocks".
  • Attempt to undo the action using the Undo command (reversion may fail or be incomplete).
  • Alternatively, right-click the workspace and select "Enable All Blocks". Notice that the blocks initially disabled in Step 2 are now enabled.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions