mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 03:57:43 +00:00
LibWeb: Make context menus work in WebContentView
As usual, this was just a matter of plumbing the PageClient calls from the WebContent side over to the WebContentView side. :^)
This commit is contained in:
parent
81ea9d1ef6
commit
92374fc942
7 changed files with 40 additions and 0 deletions
|
@ -129,3 +129,13 @@ void WebContentClient::handle(const Messages::WebContentClient::DidStartLoading&
|
||||||
{
|
{
|
||||||
m_view.notify_server_did_start_loading({}, message.url());
|
m_view.notify_server_did_start_loading({}, message.url());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void WebContentClient::handle(const Messages::WebContentClient::DidRequestContextMenu& message)
|
||||||
|
{
|
||||||
|
m_view.notify_server_did_request_context_menu({}, message.content_position());
|
||||||
|
}
|
||||||
|
|
||||||
|
void WebContentClient::handle(const Messages::WebContentClient::DidRequestLinkContextMenu& message)
|
||||||
|
{
|
||||||
|
m_view.notify_server_did_request_link_context_menu({}, message.content_position(), message.url(), message.target(), message.modifiers());
|
||||||
|
}
|
||||||
|
|
|
@ -56,6 +56,8 @@ private:
|
||||||
virtual void handle(const Messages::WebContentClient::DidClickLink&) override;
|
virtual void handle(const Messages::WebContentClient::DidClickLink&) override;
|
||||||
virtual void handle(const Messages::WebContentClient::DidMiddleClickLink&) override;
|
virtual void handle(const Messages::WebContentClient::DidMiddleClickLink&) override;
|
||||||
virtual void handle(const Messages::WebContentClient::DidStartLoading&) override;
|
virtual void handle(const Messages::WebContentClient::DidStartLoading&) override;
|
||||||
|
virtual void handle(const Messages::WebContentClient::DidRequestContextMenu&) override;
|
||||||
|
virtual void handle(const Messages::WebContentClient::DidRequestLinkContextMenu&) override;
|
||||||
|
|
||||||
WebContentView& m_view;
|
WebContentView& m_view;
|
||||||
};
|
};
|
||||||
|
|
|
@ -162,6 +162,18 @@ void WebContentView::notify_server_did_start_loading(Badge<WebContentClient>, co
|
||||||
on_load_start(url);
|
on_load_start(url);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void WebContentView::notify_server_did_request_context_menu(Badge<WebContentClient>, const Gfx::IntPoint& content_position)
|
||||||
|
{
|
||||||
|
if (on_context_menu_request)
|
||||||
|
on_context_menu_request(screen_relative_rect().location().translated(to_widget_position(content_position)));
|
||||||
|
}
|
||||||
|
|
||||||
|
void WebContentView::notify_server_did_request_link_context_menu(Badge<WebContentClient>, const Gfx::IntPoint& content_position, const URL& url, const String&, unsigned)
|
||||||
|
{
|
||||||
|
if (on_link_context_menu_request)
|
||||||
|
on_link_context_menu_request(url, screen_relative_rect().location().translated(to_widget_position(content_position)));
|
||||||
|
}
|
||||||
|
|
||||||
void WebContentView::did_scroll()
|
void WebContentView::did_scroll()
|
||||||
{
|
{
|
||||||
client().post_message(Messages::WebContentServer::SetViewportRect(visible_content_rect()));
|
client().post_message(Messages::WebContentServer::SetViewportRect(visible_content_rect()));
|
||||||
|
|
|
@ -55,6 +55,8 @@ public:
|
||||||
void notify_server_did_click_link(Badge<WebContentClient>, const URL&, const String& target, unsigned modifiers);
|
void notify_server_did_click_link(Badge<WebContentClient>, const URL&, const String& target, unsigned modifiers);
|
||||||
void notify_server_did_middle_click_link(Badge<WebContentClient>, const URL&, const String& target, unsigned modifiers);
|
void notify_server_did_middle_click_link(Badge<WebContentClient>, const URL&, const String& target, unsigned modifiers);
|
||||||
void notify_server_did_start_loading(Badge<WebContentClient>, const URL&);
|
void notify_server_did_start_loading(Badge<WebContentClient>, const URL&);
|
||||||
|
void notify_server_did_request_context_menu(Badge<WebContentClient>, const Gfx::IntPoint&);
|
||||||
|
void notify_server_did_request_link_context_menu(Badge<WebContentClient>, const Gfx::IntPoint&, const URL&, const String& target, unsigned modifiers);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
WebContentView();
|
WebContentView();
|
||||||
|
|
|
@ -159,4 +159,14 @@ void PageHost::page_did_start_loading(const URL& url)
|
||||||
m_client.post_message(Messages::WebContentClient::DidStartLoading(url));
|
m_client.post_message(Messages::WebContentClient::DidStartLoading(url));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void PageHost::page_did_request_context_menu(const Gfx::IntPoint& content_position)
|
||||||
|
{
|
||||||
|
m_client.post_message(Messages::WebContentClient::DidRequestContextMenu(content_position));
|
||||||
|
}
|
||||||
|
|
||||||
|
void PageHost::page_did_request_link_context_menu(const Gfx::IntPoint& content_position, const URL& url, const String& target, unsigned modifiers)
|
||||||
|
{
|
||||||
|
m_client.post_message(Messages::WebContentClient::DidRequestLinkContextMenu(content_position, url, target, modifiers));
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -60,6 +60,8 @@ private:
|
||||||
virtual void page_did_unhover_link() override;
|
virtual void page_did_unhover_link() override;
|
||||||
virtual void page_did_click_link(const URL&, const String& target, unsigned modifiers) override;
|
virtual void page_did_click_link(const URL&, const String& target, unsigned modifiers) override;
|
||||||
virtual void page_did_middle_click_link(const URL&, const String& target, unsigned modifiers) override;
|
virtual void page_did_middle_click_link(const URL&, const String& target, unsigned modifiers) override;
|
||||||
|
virtual void page_did_request_context_menu(const Gfx::IntPoint&) override;
|
||||||
|
virtual void page_did_request_link_context_menu(const Gfx::IntPoint&, const URL&, const String& target, unsigned modifiers) override;
|
||||||
virtual void page_did_start_loading(const URL&) override;
|
virtual void page_did_start_loading(const URL&) override;
|
||||||
|
|
||||||
explicit PageHost(ClientConnection&);
|
explicit PageHost(ClientConnection&);
|
||||||
|
|
|
@ -12,4 +12,6 @@ endpoint WebContentClient = 90
|
||||||
DidClickLink(URL url, String target, unsigned modifiers) =|
|
DidClickLink(URL url, String target, unsigned modifiers) =|
|
||||||
DidMiddleClickLink(URL url, String target, unsigned modifiers) =|
|
DidMiddleClickLink(URL url, String target, unsigned modifiers) =|
|
||||||
DidStartLoading(URL url) =|
|
DidStartLoading(URL url) =|
|
||||||
|
DidRequestContextMenu(Gfx::IntPoint content_position) =|
|
||||||
|
DidRequestLinkContextMenu(Gfx::IntPoint content_position, URL url, String target, unsigned modifiers) =|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue