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
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.
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
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