1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-24 18:17:34 +00:00

LibWeb+WebContent: Add WebContentClient::did_request_scroll_to() call

This call sets the absolute scroll position for the window.
This commit is contained in:
Sam Atkins 2021-09-08 11:44:36 +01:00 committed by Linus Groh
parent a09219159c
commit 83414af9f3
8 changed files with 21 additions and 0 deletions

View file

@ -241,6 +241,12 @@ void OutOfProcessWebView::notify_server_did_request_scroll(Badge<WebContentClien
vertical_scrollbar().set_value(vertical_scrollbar().value() + y_delta);
}
void OutOfProcessWebView::notify_server_did_request_scroll_to(Badge<WebContentClient>, Gfx::IntPoint const& scroll_position)
{
horizontal_scrollbar().set_value(scroll_position.x());
vertical_scrollbar().set_value(scroll_position.y());
}
void OutOfProcessWebView::notify_server_did_request_scroll_into_view(Badge<WebContentClient>, const Gfx::IntRect& rect)
{
scroll_into_view(rect, true, true);

View file

@ -58,6 +58,7 @@ public:
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_request_scroll(Badge<WebContentClient>, i32, i32);
void notify_server_did_request_scroll_to(Badge<WebContentClient>, Gfx::IntPoint const&);
void notify_server_did_request_scroll_into_view(Badge<WebContentClient>, const Gfx::IntRect&);
void notify_server_did_enter_tooltip_area(Badge<WebContentClient>, const Gfx::IntPoint&, const String&);
void notify_server_did_leave_tooltip_area(Badge<WebContentClient>);

View file

@ -86,6 +86,7 @@ public:
virtual void page_did_change_favicon(const Gfx::Bitmap&) { }
virtual void page_did_layout() { }
virtual void page_did_request_scroll(i32, i32) { }
virtual void page_did_request_scroll_to(Gfx::IntPoint const&) { }
virtual void page_did_request_scroll_into_view(const Gfx::IntRect&) { }
virtual void page_did_request_alert(const String&) { }
virtual bool page_did_request_confirm(const String&) { return false; }

View file

@ -73,6 +73,11 @@ void WebContentClient::did_request_scroll(i32 x_delta, i32 y_delta)
m_view.notify_server_did_request_scroll({}, x_delta, y_delta);
}
void WebContentClient::did_request_scroll_to(Gfx::IntPoint const& scroll_position)
{
m_view.notify_server_did_request_scroll_to({}, scroll_position);
}
void WebContentClient::did_request_scroll_into_view(Gfx::IntRect const& rect)
{
dbgln_if(SPAM_DEBUG, "handle: WebContentClient::DidRequestScrollIntoView! rect={}", rect);

View file

@ -37,6 +37,7 @@ private:
virtual void did_layout(Gfx::IntSize const&) override;
virtual void did_change_title(String const&) override;
virtual void did_request_scroll(i32, i32) override;
virtual void did_request_scroll_to(Gfx::IntPoint const&) override;
virtual void did_request_scroll_into_view(Gfx::IntRect const&) override;
virtual void did_enter_tooltip_area(Gfx::IntPoint const&, String const&) override;
virtual void did_leave_tooltip_area() override;

View file

@ -109,6 +109,11 @@ void PageHost::page_did_request_scroll(i32 x_delta, i32 y_delta)
m_client.async_did_request_scroll(x_delta, y_delta);
}
void PageHost::page_did_request_scroll_to(Gfx::IntPoint const& scroll_position)
{
m_client.async_did_request_scroll_to(scroll_position);
}
void PageHost::page_did_request_scroll_into_view(const Gfx::IntRect& rect)
{
m_client.async_did_request_scroll_into_view(rect);

View file

@ -42,6 +42,7 @@ private:
virtual void page_did_layout() override;
virtual void page_did_change_title(const String&) override;
virtual void page_did_request_scroll(i32, i32) override;
virtual void page_did_request_scroll_to(Gfx::IntPoint const&) override;
virtual void page_did_request_scroll_into_view(const Gfx::IntRect&) override;
virtual void page_did_enter_tooltip_area(const Gfx::IntPoint&, const String&) override;
virtual void page_did_leave_tooltip_area() override;

View file

@ -13,6 +13,7 @@ endpoint WebContentClient
did_layout(Gfx::IntSize content_size) =|
did_change_title(String title) =|
did_request_scroll(i32 x_delta, i32 y_delta) =|
did_request_scroll_to(Gfx::IntPoint scroll_position) =|
did_request_scroll_into_view(Gfx::IntRect rect) =|
did_enter_tooltip_area(Gfx::IntPoint content_position, String title) =|
did_leave_tooltip_area() =|