mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 04:47:35 +00:00
LibWeb: Send key events to the WebContent process
This makes contenteditable work in multi-process mode. :^)
This commit is contained in:
parent
ea9ac3155d
commit
6e221adade
5 changed files with 15 additions and 0 deletions
|
@ -76,6 +76,11 @@ void WebContentView::resize_event(GUI::ResizeEvent& event)
|
||||||
request_repaint();
|
request_repaint();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void WebContentView::keydown_event(GUI::KeyEvent& event)
|
||||||
|
{
|
||||||
|
client().post_message(Messages::WebContentServer::KeyDown(event.key(), event.modifiers(), event.code_point()));
|
||||||
|
}
|
||||||
|
|
||||||
void WebContentView::mousedown_event(GUI::MouseEvent& event)
|
void WebContentView::mousedown_event(GUI::MouseEvent& event)
|
||||||
{
|
{
|
||||||
client().post_message(Messages::WebContentServer::MouseDown(to_content_position(event.position()), event.button(), event.buttons(), event.modifiers()));
|
client().post_message(Messages::WebContentServer::MouseDown(to_content_position(event.position()), event.button(), event.buttons(), event.modifiers()));
|
||||||
|
|
|
@ -62,11 +62,13 @@ private:
|
||||||
WebContentView();
|
WebContentView();
|
||||||
|
|
||||||
// ^Widget
|
// ^Widget
|
||||||
|
virtual bool accepts_focus() const override { return true; }
|
||||||
virtual void paint_event(GUI::PaintEvent&) override;
|
virtual void paint_event(GUI::PaintEvent&) override;
|
||||||
virtual void resize_event(GUI::ResizeEvent&) override;
|
virtual void resize_event(GUI::ResizeEvent&) 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 mousemove_event(GUI::MouseEvent&) override;
|
virtual void mousemove_event(GUI::MouseEvent&) override;
|
||||||
|
virtual void keydown_event(GUI::KeyEvent&) override;
|
||||||
|
|
||||||
// ^ScrollableWidget
|
// ^ScrollableWidget
|
||||||
virtual void did_scroll() override;
|
virtual void did_scroll() override;
|
||||||
|
|
|
@ -153,4 +153,9 @@ 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::KeyDown& message)
|
||||||
|
{
|
||||||
|
page().handle_keydown((KeyCode)message.key(), message.modifiers(), message.code_point());
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -57,6 +57,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::KeyDown&) override;
|
||||||
|
|
||||||
void flush_pending_paint_requests();
|
void flush_pending_paint_requests();
|
||||||
|
|
||||||
|
|
|
@ -12,4 +12,6 @@ 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) =|
|
||||||
|
|
||||||
|
KeyDown(i32 key, unsigned modifiers, u32 code_point) =|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue