mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-11-10 13:00:29 +03:00
LibWeb: Adjust change event timing for input elements
This commit is contained in:
parent
06593a81da
commit
518679b0dd
Notes:
sideshowbarker
2024-07-16 23:59:28 +09:00
Author: https://github.com/stelar7 Commit: https://github.com/SerenityOS/serenity/commit/518679b0dd Pull-request: https://github.com/SerenityOS/serenity/pull/19130
@ -297,11 +297,6 @@ void HTMLInputElement::did_edit_text_node(Badge<BrowsingContext>)
|
||||
input_event->set_bubbles(true);
|
||||
input_event->set_composed(true);
|
||||
dispatch_event(*input_event);
|
||||
|
||||
// FIXME: This should only fire when the input is "committed", whatever that means.
|
||||
auto change_event = DOM::Event::create(realm(), HTML::EventNames::change).release_value_but_fixme_should_propagate_errors();
|
||||
change_event->set_bubbles(true);
|
||||
dispatch_event(change_event);
|
||||
});
|
||||
}
|
||||
|
||||
@ -487,6 +482,17 @@ void HTMLInputElement::did_receive_focus()
|
||||
browsing_context->set_cursor_position(DOM::Position { *m_text_node, 0 });
|
||||
}
|
||||
|
||||
void HTMLInputElement::did_lose_focus()
|
||||
{
|
||||
// The change event fires when the value is committed, if that makes sense for the control,
|
||||
// or else when the control loses focus
|
||||
queue_an_element_task(HTML::Task::Source::UserInteraction, [this] {
|
||||
auto change_event = DOM::Event::create(realm(), HTML::EventNames::change).release_value_but_fixme_should_propagate_errors();
|
||||
change_event->set_bubbles(true);
|
||||
dispatch_event(change_event);
|
||||
});
|
||||
}
|
||||
|
||||
void HTMLInputElement::parse_attribute(DeprecatedFlyString const& name, DeprecatedString const& value)
|
||||
{
|
||||
HTMLElement::parse_attribute(name, value);
|
||||
|
@ -140,6 +140,7 @@ private:
|
||||
virtual bool is_html_input_element() const final { return true; }
|
||||
|
||||
// ^DOM::EventTarget
|
||||
virtual void did_lose_focus() override;
|
||||
virtual void did_receive_focus() override;
|
||||
virtual void legacy_pre_activation_behavior() override;
|
||||
virtual void legacy_cancelled_activation_behavior() override;
|
||||
|
Loading…
Reference in New Issue
Block a user