fix: detached glass empty after edge-split drop#56
Merged
ohxyz merged 2 commits intoJun 11, 2026
Merged
Conversation
Edge-split drop appended the dragged glass alongside the empty placeholder glass that addPane seeds, leaving two glasses in the pane. Detach then read the empty one via querySelector. Use replaceChildren so the pane holds only the dragged glass.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
After dragging a glass and dropping it onto a pane edge (top/right/bottom/left), clicking the glass's detach button produced an empty detached glass — no title, no content.
Root cause
The edge-split drop path in
src/binary-window/glass/drag.jsdid:But
BinaryWindow.addPanealways seeds the new pane with its own empty placeholderGlass. Appending the dragged glass left the pane with twobw-glasselements (empty first, real second). The detach action reads the glass viapaneEl.querySelector('bw-glass-content'), which returns the first (empty) match — hence the blank detached glass.The center-swap path was unaffected.
Fix
Use
replaceChildreninstead ofappend, so the relocated pane holds exactly the dragged glass.Notes
onPaneDrophandler (failed before, passed after); full suite green (26/26).