Fix click event bug caused by DomRenderer replaceChildren behavior#5249
Merged
Tyriar merged 1 commit intoxtermjs:masterfrom Dec 20, 2024
Merged
Fix click event bug caused by DomRenderer replaceChildren behavior#5249Tyriar merged 1 commit intoxtermjs:masterfrom
Tyriar merged 1 commit intoxtermjs:masterfrom
Conversation
Member
|
@jtbandes Wow thats a very neat trick to get it working. Thx for finding and fixing this :) |
Contributor
Author
|
@Tyriar friendly ping on this when you get a chance 🙂 |
Tyriar
approved these changes
Dec 20, 2024
Member
Tyriar
left a comment
There was a problem hiding this comment.
LGTM, I thought this would work, great suggestion!
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.
Fixes an issue where
clickevents on the terminal would not be sent when using DomRenderer. (Fixes #5220)As described in #5220 (comment), as far as I can tell, the issue happens because the clicked element (
event.target) is replaced (viareplaceChildren) between mousedown & mouseup. This caused the browser to never deliver aclickevent at all. Addingpointer-events: none;makes it so the descendants of.xterm-rowsare not considered, and theevent.targetis always the parent.xterm-screenelement for both mousedown & mouseup events — and the click events are delivered as expected.