From 849ade88ce83cc143646572003a7652b8ff19d11 Mon Sep 17 00:00:00 2001 From: Idan Horowitz Date: Sat, 30 Aug 2025 19:55:52 +0300 Subject: [PATCH] LibWeb: Fire change events on deletion in FormAssociated Text Elements Previously we would only trigger change events on insertion, which resulted in javascript code missing changes due to deletion. This makes the calculator on the MDN simple web worker demo update on deletion as well. --- Libraries/LibWeb/DOM/Node.h | 1 + Libraries/LibWeb/HTML/FormAssociatedElement.cpp | 3 +++ 2 files changed, 4 insertions(+) diff --git a/Libraries/LibWeb/DOM/Node.h b/Libraries/LibWeb/DOM/Node.h index 0c46419a367..d643cce151d 100644 --- a/Libraries/LibWeb/DOM/Node.h +++ b/Libraries/LibWeb/DOM/Node.h @@ -62,6 +62,7 @@ enum class ShouldComputeRole { X(DidLoseFocus) \ X(DidReceiveFocus) \ X(EditingInsertion) \ + X(EditingDeletion) \ X(ElementAttributeChange) \ X(ElementSetShadowRoot) \ X(HTMLDialogElementSetIsModal) \ diff --git a/Libraries/LibWeb/HTML/FormAssociatedElement.cpp b/Libraries/LibWeb/HTML/FormAssociatedElement.cpp index 77482a22cd4..52f2b81685e 100644 --- a/Libraries/LibWeb/HTML/FormAssociatedElement.cpp +++ b/Libraries/LibWeb/HTML/FormAssociatedElement.cpp @@ -880,6 +880,9 @@ void FormAssociatedTextControlElement::handle_delete(DeleteDirection direction) } MUST(set_range_text({}, selection_start, selection_end, Bindings::SelectionMode::End)); + + text_node->invalidate_style(DOM::StyleInvalidationReason::EditingDeletion); + did_edit_text_node(); } EventResult FormAssociatedTextControlElement::handle_return_key(FlyString const&)