1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 00:57:43 +00:00

LibWeb: Plumb wheel events from widget layer to EventHandler

This commit is contained in:
Andreas Kling 2021-02-22 19:45:41 +01:00
parent 53081226e9
commit ded8c728d2
11 changed files with 32 additions and 0 deletions

View file

@ -296,6 +296,12 @@ void InProcessWebView::mouseup_event(GUI::MouseEvent& event)
GUI::ScrollableWidget::mouseup_event(event); GUI::ScrollableWidget::mouseup_event(event);
} }
void InProcessWebView::mousewheel_event(GUI::MouseEvent& event)
{
page().handle_mousewheel(to_content_position(event.position()), event.button(), event.modifiers(), event.wheel_delta());
GUI::ScrollableWidget::mousewheel_event(event);
}
void InProcessWebView::keydown_event(GUI::KeyEvent& event) void InProcessWebView::keydown_event(GUI::KeyEvent& event)
{ {
bool page_accepted_event = page().handle_keydown(event.key(), event.modifiers(), event.code_point()); bool page_accepted_event = page().handle_keydown(event.key(), event.modifiers(), event.code_point());

View file

@ -78,6 +78,7 @@ private:
virtual void mousemove_event(GUI::MouseEvent&) override; virtual void mousemove_event(GUI::MouseEvent&) override;
virtual void mousedown_event(GUI::MouseEvent&) override; virtual void mousedown_event(GUI::MouseEvent&) override;
virtual void mouseup_event(GUI::MouseEvent&) override; virtual void mouseup_event(GUI::MouseEvent&) override;
virtual void mousewheel_event(GUI::MouseEvent&) override;
virtual void keydown_event(GUI::KeyEvent&) override; virtual void keydown_event(GUI::KeyEvent&) override;
virtual void drop_event(GUI::DropEvent&) override; virtual void drop_event(GUI::DropEvent&) override;

View file

@ -195,6 +195,11 @@ void OutOfProcessWebView::mousemove_event(GUI::MouseEvent& event)
client().post_message(Messages::WebContentServer::MouseMove(to_content_position(event.position()), event.button(), event.buttons(), event.modifiers())); client().post_message(Messages::WebContentServer::MouseMove(to_content_position(event.position()), event.button(), event.buttons(), event.modifiers()));
} }
void OutOfProcessWebView::mousewheel_event(GUI::MouseEvent& event)
{
client().post_message(Messages::WebContentServer::MouseWheel(to_content_position(event.position()), event.button(), event.buttons(), event.modifiers(), event.wheel_delta()));
}
void OutOfProcessWebView::theme_change_event(GUI::ThemeChangeEvent& event) void OutOfProcessWebView::theme_change_event(GUI::ThemeChangeEvent& event)
{ {
GUI::ScrollableWidget::theme_change_event(event); GUI::ScrollableWidget::theme_change_event(event);

View file

@ -78,6 +78,7 @@ private:
virtual void mousedown_event(GUI::MouseEvent&) override; virtual void mousedown_event(GUI::MouseEvent&) override;
virtual void mouseup_event(GUI::MouseEvent&) override; virtual void mouseup_event(GUI::MouseEvent&) override;
virtual void mousemove_event(GUI::MouseEvent&) override; virtual void mousemove_event(GUI::MouseEvent&) override;
virtual void mousewheel_event(GUI::MouseEvent&) override;
virtual void keydown_event(GUI::KeyEvent&) override; virtual void keydown_event(GUI::KeyEvent&) override;
virtual void theme_change_event(GUI::ThemeChangeEvent&) override; virtual void theme_change_event(GUI::ThemeChangeEvent&) override;

View file

@ -73,6 +73,11 @@ Layout::InitialContainingBlockBox* EventHandler::layout_root()
return m_frame.document()->layout_node(); return m_frame.document()->layout_node();
} }
bool EventHandler::handle_mousewheel(const Gfx::IntPoint& position, unsigned int buttons, unsigned int modifiers, int wheel_delta)
{
return false;
}
bool EventHandler::handle_mouseup(const Gfx::IntPoint& position, unsigned button, unsigned modifiers) bool EventHandler::handle_mouseup(const Gfx::IntPoint& position, unsigned button, unsigned modifiers)
{ {
if (!layout_root()) if (!layout_root())

View file

@ -47,6 +47,7 @@ public:
bool handle_mouseup(const Gfx::IntPoint&, unsigned button, unsigned modifiers); bool handle_mouseup(const Gfx::IntPoint&, unsigned button, unsigned modifiers);
bool handle_mousedown(const Gfx::IntPoint&, unsigned button, unsigned modifiers); bool handle_mousedown(const Gfx::IntPoint&, unsigned button, unsigned modifiers);
bool handle_mousemove(const Gfx::IntPoint&, unsigned buttons, unsigned modifiers); bool handle_mousemove(const Gfx::IntPoint&, unsigned buttons, unsigned modifiers);
bool handle_mousewheel(const Gfx::IntPoint&, unsigned buttons, unsigned modifiers, int wheel_delta);
bool handle_keydown(KeyCode, unsigned modifiers, u32 code_point); bool handle_keydown(KeyCode, unsigned modifiers, u32 code_point);

View file

@ -72,6 +72,11 @@ Gfx::Palette Page::palette() const
return m_client.palette(); return m_client.palette();
} }
bool Page::handle_mousewheel(const Gfx::IntPoint& position, unsigned button, unsigned modifiers, int wheel_delta)
{
return main_frame().event_handler().handle_mousewheel(position, button, modifiers, wheel_delta);
}
bool Page::handle_mouseup(const Gfx::IntPoint& position, unsigned button, unsigned modifiers) bool Page::handle_mouseup(const Gfx::IntPoint& position, unsigned button, unsigned modifiers)
{ {
return main_frame().event_handler().handle_mouseup(position, button, modifiers); return main_frame().event_handler().handle_mouseup(position, button, modifiers);

View file

@ -69,6 +69,7 @@ public:
bool handle_mouseup(const Gfx::IntPoint&, unsigned button, unsigned modifiers); bool handle_mouseup(const Gfx::IntPoint&, unsigned button, unsigned modifiers);
bool handle_mousedown(const Gfx::IntPoint&, unsigned button, unsigned modifiers); bool handle_mousedown(const Gfx::IntPoint&, unsigned button, unsigned modifiers);
bool handle_mousemove(const Gfx::IntPoint&, unsigned buttons, unsigned modifiers); bool handle_mousemove(const Gfx::IntPoint&, unsigned buttons, unsigned modifiers);
bool handle_mousewheel(const Gfx::IntPoint&, unsigned button, unsigned modifiers, int wheel_delta);
bool handle_keydown(KeyCode, unsigned modifiers, u32 code_point); bool handle_keydown(KeyCode, unsigned modifiers, u32 code_point);

View file

@ -166,6 +166,11 @@ void ClientConnection::handle(const Messages::WebContentServer::MouseUp& message
page().handle_mouseup(message.position(), message.button(), message.modifiers()); page().handle_mouseup(message.position(), message.button(), message.modifiers());
} }
void ClientConnection::handle(const Messages::WebContentServer::MouseWheel& message)
{
page().handle_mousewheel(message.position(), message.button(), message.modifiers(), message.wheel_delta());
}
void ClientConnection::handle(const Messages::WebContentServer::KeyDown& message) void ClientConnection::handle(const Messages::WebContentServer::KeyDown& message)
{ {
page().handle_keydown((KeyCode)message.key(), message.modifiers(), message.code_point()); page().handle_keydown((KeyCode)message.key(), message.modifiers(), message.code_point());

View file

@ -59,6 +59,7 @@ private:
virtual void handle(const Messages::WebContentServer::MouseDown&) override; virtual void handle(const Messages::WebContentServer::MouseDown&) override;
virtual void handle(const Messages::WebContentServer::MouseMove&) override; virtual void handle(const Messages::WebContentServer::MouseMove&) override;
virtual void handle(const Messages::WebContentServer::MouseUp&) override; virtual void handle(const Messages::WebContentServer::MouseUp&) override;
virtual void handle(const Messages::WebContentServer::MouseWheel&) override;
virtual void handle(const Messages::WebContentServer::KeyDown&) override; virtual void handle(const Messages::WebContentServer::KeyDown&) override;
virtual void handle(const Messages::WebContentServer::AddBackingStore&) override; virtual void handle(const Messages::WebContentServer::AddBackingStore&) override;
virtual void handle(const Messages::WebContentServer::RemoveBackingStore&) override; virtual void handle(const Messages::WebContentServer::RemoveBackingStore&) override;

View file

@ -16,6 +16,7 @@ endpoint WebContentServer = 89
MouseDown(Gfx::IntPoint position, unsigned button, unsigned buttons, unsigned modifiers) =| MouseDown(Gfx::IntPoint position, unsigned button, unsigned buttons, unsigned modifiers) =|
MouseMove(Gfx::IntPoint position, unsigned button, unsigned buttons, unsigned modifiers) =| MouseMove(Gfx::IntPoint position, unsigned button, unsigned buttons, unsigned modifiers) =|
MouseUp(Gfx::IntPoint position, unsigned button, unsigned buttons, unsigned modifiers) =| MouseUp(Gfx::IntPoint position, unsigned button, unsigned buttons, unsigned modifiers) =|
MouseWheel(Gfx::IntPoint position, unsigned button, unsigned buttons, unsigned modifiers, i32 wheel_delta) =|
KeyDown(i32 key, unsigned modifiers, u32 code_point) =| KeyDown(i32 key, unsigned modifiers, u32 code_point) =|