mirror of
https://github.com/fergalmoran/ladybird.git
synced 2026-01-04 07:36:50 +00:00
LibWeb: Dispatch keydown events before invoking special handlers
We need to give pages the opportunity to intercept keydown events and potentially stop them from propagating. Otherwise, for example, pressing an arrow key in an <input> element is not observable via script.
This commit is contained in:
committed by
Andreas Kling
parent
27d40bafc9
commit
d5d6f9bc92
@@ -769,6 +769,10 @@ bool EventHandler::handle_keydown(KeyCode key, unsigned modifiers, u32 code_poin
|
||||
media_element.handle_keydown({}, key).release_value_but_fixme_should_propagate_errors();
|
||||
}
|
||||
|
||||
bool continue_ = fire_keyboard_event(UIEvents::EventNames::keydown, m_browsing_context, key, modifiers, code_point);
|
||||
if (!continue_)
|
||||
return false;
|
||||
|
||||
if (m_browsing_context->cursor_position() && m_browsing_context->cursor_position()->node()->is_editable()) {
|
||||
auto& node = verify_cast<DOM::Text>(*m_browsing_context->cursor_position()->node());
|
||||
|
||||
@@ -824,10 +828,6 @@ bool EventHandler::handle_keydown(KeyCode key, unsigned modifiers, u32 code_poin
|
||||
return true;
|
||||
}
|
||||
|
||||
bool continue_ = fire_keyboard_event(UIEvents::EventNames::keydown, m_browsing_context, key, modifiers, code_point);
|
||||
if (!continue_)
|
||||
return false;
|
||||
|
||||
// FIXME: Work out and implement the difference between this and keydown.
|
||||
return fire_keyboard_event(UIEvents::EventNames::keypress, m_browsing_context, key, modifiers, code_point);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user