1
0
Fork 0
mirror of https://github.com/LadybirdBrowser/ladybird.git synced 2025-06-11 18:20:43 +09:00

LibWeb: Support setting the cursor in OutOfProcessWebView

This commit is contained in:
Adam Hodgen 2021-02-27 21:12:12 +00:00 committed by Andreas Kling
parent fc9225db33
commit bedcd9cd88
Notes: sideshowbarker 2024-07-18 21:50:41 +09:00
7 changed files with 23 additions and 0 deletions

View file

@ -229,6 +229,11 @@ void OutOfProcessWebView::notify_server_did_change_selection(Badge<WebContentCli
request_repaint(); request_repaint();
} }
void OutOfProcessWebView::notify_server_did_request_cursor_change(Badge<WebContentClient>, Gfx::StandardCursor cursor)
{
set_override_cursor(cursor);
}
void OutOfProcessWebView::notify_server_did_layout(Badge<WebContentClient>, const Gfx::IntSize& content_size) void OutOfProcessWebView::notify_server_did_layout(Badge<WebContentClient>, const Gfx::IntSize& content_size)
{ {
set_content_size(content_size); set_content_size(content_size);

View file

@ -58,6 +58,7 @@ public:
void notify_server_did_paint(Badge<WebContentClient>, i32 bitmap_id); void notify_server_did_paint(Badge<WebContentClient>, i32 bitmap_id);
void notify_server_did_invalidate_content_rect(Badge<WebContentClient>, const Gfx::IntRect&); void notify_server_did_invalidate_content_rect(Badge<WebContentClient>, const Gfx::IntRect&);
void notify_server_did_change_selection(Badge<WebContentClient>); void notify_server_did_change_selection(Badge<WebContentClient>);
void notify_server_did_request_cursor_change(Badge<WebContentClient>, Gfx::StandardCursor cursor);
void notify_server_did_change_title(Badge<WebContentClient>, const String&); void notify_server_did_change_title(Badge<WebContentClient>, const String&);
void notify_server_did_request_scroll_into_view(Badge<WebContentClient>, const Gfx::IntRect&); void notify_server_did_request_scroll_into_view(Badge<WebContentClient>, const Gfx::IntRect&);
void notify_server_did_hover_link(Badge<WebContentClient>, const URL&); void notify_server_did_hover_link(Badge<WebContentClient>, const URL&);

View file

@ -74,6 +74,15 @@ void WebContentClient::handle(const Messages::WebContentClient::DidChangeSelecti
m_view.notify_server_did_change_selection({}); m_view.notify_server_did_change_selection({});
} }
void WebContentClient::handle(const Messages::WebContentClient::DidRequestCursorChange& message)
{
if (message.cursor_type() < 0 || message.cursor_type() >= (i32)Gfx::StandardCursor::__Count) {
dbgln("DidRequestCursorChange: Bad cursor type");
return;
}
m_view.notify_server_did_request_cursor_change({}, (Gfx::StandardCursor)message.cursor_type());
}
void WebContentClient::handle(const Messages::WebContentClient::DidLayout& message) void WebContentClient::handle(const Messages::WebContentClient::DidLayout& message)
{ {
dbgln_if(SPAM_DEBUG, "handle: WebContentClient::DidLayout! content_size={}", message.content_size()); dbgln_if(SPAM_DEBUG, "handle: WebContentClient::DidLayout! content_size={}", message.content_size());

View file

@ -54,6 +54,7 @@ private:
virtual void handle(const Messages::WebContentClient::DidFinishLoading&) override; virtual void handle(const Messages::WebContentClient::DidFinishLoading&) override;
virtual void handle(const Messages::WebContentClient::DidInvalidateContentRect&) override; virtual void handle(const Messages::WebContentClient::DidInvalidateContentRect&) override;
virtual void handle(const Messages::WebContentClient::DidChangeSelection&) override; virtual void handle(const Messages::WebContentClient::DidChangeSelection&) override;
virtual void handle(const Messages::WebContentClient::DidRequestCursorChange&) override;
virtual void handle(const Messages::WebContentClient::DidLayout&) override; virtual void handle(const Messages::WebContentClient::DidLayout&) override;
virtual void handle(const Messages::WebContentClient::DidChangeTitle&) override; virtual void handle(const Messages::WebContentClient::DidChangeTitle&) override;
virtual void handle(const Messages::WebContentClient::DidRequestScrollIntoView&) override; virtual void handle(const Messages::WebContentClient::DidRequestScrollIntoView&) override;

View file

@ -113,6 +113,11 @@ void PageHost::page_did_change_selection()
m_client.post_message(Messages::WebContentClient::DidChangeSelection()); m_client.post_message(Messages::WebContentClient::DidChangeSelection());
} }
void PageHost::page_did_request_cursor_change(Gfx::StandardCursor cursor)
{
m_client.post_message(Messages::WebContentClient::DidRequestCursorChange((u32)cursor));
}
void PageHost::page_did_layout() void PageHost::page_did_layout()
{ {
auto* layout_root = this->layout_root(); auto* layout_root = this->layout_root();

View file

@ -56,6 +56,7 @@ private:
virtual Gfx::Palette palette() const override; virtual Gfx::Palette palette() const override;
virtual void page_did_invalidate(const Gfx::IntRect&) override; virtual void page_did_invalidate(const Gfx::IntRect&) override;
virtual void page_did_change_selection() override; virtual void page_did_change_selection() override;
virtual void page_did_request_cursor_change(Gfx::StandardCursor) override;
virtual void page_did_layout() override; virtual void page_did_layout() override;
virtual void page_did_change_title(const String&) override; virtual void page_did_change_title(const String&) override;
virtual void page_did_request_scroll_into_view(const Gfx::IntRect&) override; virtual void page_did_request_scroll_into_view(const Gfx::IntRect&) override;

View file

@ -5,6 +5,7 @@ endpoint WebContentClient = 90
DidPaint(Gfx::IntRect content_rect, i32 bitmap_id) =| DidPaint(Gfx::IntRect content_rect, i32 bitmap_id) =|
DidInvalidateContentRect(Gfx::IntRect content_rect) =| DidInvalidateContentRect(Gfx::IntRect content_rect) =|
DidChangeSelection() =| DidChangeSelection() =|
DidRequestCursorChange(i32 cursor_type) =|
DidLayout(Gfx::IntSize content_size) =| DidLayout(Gfx::IntSize content_size) =|
DidChangeTitle(String title) =| DidChangeTitle(String title) =|
DidRequestScrollIntoView(Gfx::IntRect rect) =| DidRequestScrollIntoView(Gfx::IntRect rect) =|