fix: Fix loss of focus when un/redoing block deletions or moves. by gonfunko · Pull Request #9195 · RaspberryPiFoundation/blockly

The basics

The details

Resolves

Fixes RaspberryPiFoundation/blockly-keyboard-experimentation#220

Proposed Changes

This PR improves the handling of focus when undoing or redoing block deletes/adds and moves. In certain cases, focus could become lost, because setting the parent of a block shuffles its SVG's position in the DOM, and appendChild() does not preserve focus state. Now, the focused element is saved and restored after DOM manipulation is complete. Additionally, I added a heuristic to infer the parent block to focus when a block is being deleted in cases where a block was programmatically detached from its parent prior to being deleted.