mirror of
https://github.com/RGBCube/serenity
synced 2025-05-31 14:28:12 +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:
parent
27d40bafc9
commit
d5d6f9bc92
1 changed files with 4 additions and 4 deletions
|
@ -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);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue