1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-23 10:47:36 +00:00

LibWeb+WebContent: Modify did_request_scroll() IPC to take x&y deltas

This is in preparation for implementing JS scrolling functions, which
specify both x and y scrolling deltas. The visible behavior has not
changed.

Also, moved the "mouse wheel delta * 20" calculation to the
`EventHandler` since the JS calls will want to work directly in pixels.
This commit is contained in:
Sam Atkins 2021-09-08 11:22:44 +01:00 committed by Linus Groh
parent 92a3318375
commit a09219159c
9 changed files with 13 additions and 12 deletions

View file

@ -235,9 +235,10 @@ void OutOfProcessWebView::notify_server_did_change_title(Badge<WebContentClient>
on_title_change(title);
}
void OutOfProcessWebView::notify_server_did_request_scroll(Badge<WebContentClient>, int wheel_delta)
void OutOfProcessWebView::notify_server_did_request_scroll(Badge<WebContentClient>, i32 x_delta, i32 y_delta)
{
vertical_scrollbar().set_value(vertical_scrollbar().value() + wheel_delta * 20);
horizontal_scrollbar().set_value(horizontal_scrollbar().value() + x_delta);
vertical_scrollbar().set_value(vertical_scrollbar().value() + y_delta);
}
void OutOfProcessWebView::notify_server_did_request_scroll_into_view(Badge<WebContentClient>, const Gfx::IntRect& rect)

View file

@ -57,7 +57,7 @@ public:
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_request_scroll(Badge<WebContentClient>, int);
void notify_server_did_request_scroll(Badge<WebContentClient>, i32, i32);
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

@ -125,7 +125,7 @@ bool EventHandler::handle_mousewheel(const Gfx::IntPoint& position, unsigned int
}
if (auto* page = m_frame.page()) {
page->client().page_did_request_scroll(wheel_delta);
page->client().page_did_request_scroll(0, wheel_delta * 20);
return true;
}

View file

@ -85,7 +85,7 @@ public:
virtual void page_did_invalidate(const Gfx::IntRect&) { }
virtual void page_did_change_favicon(const Gfx::Bitmap&) { }
virtual void page_did_layout() { }
virtual void page_did_request_scroll(int) { }
virtual void page_did_request_scroll(i32, i32) { }
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

@ -68,9 +68,9 @@ void WebContentClient::did_change_title(String const& title)
m_view.notify_server_did_change_title({}, title);
}
void WebContentClient::did_request_scroll(int wheel_delta)
void WebContentClient::did_request_scroll(i32 x_delta, i32 y_delta)
{
m_view.notify_server_did_request_scroll({}, wheel_delta);
m_view.notify_server_did_request_scroll({}, x_delta, y_delta);
}
void WebContentClient::did_request_scroll_into_view(Gfx::IntRect const& rect)

View file

@ -36,7 +36,7 @@ private:
virtual void did_request_cursor_change(i32) override;
virtual void did_layout(Gfx::IntSize const&) override;
virtual void did_change_title(String const&) override;
virtual void did_request_scroll(int) override;
virtual void did_request_scroll(i32, i32) 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

@ -104,9 +104,9 @@ void PageHost::page_did_change_title(const String& title)
m_client.async_did_change_title(title);
}
void PageHost::page_did_request_scroll(int wheel_delta)
void PageHost::page_did_request_scroll(i32 x_delta, i32 y_delta)
{
m_client.async_did_request_scroll(wheel_delta);
m_client.async_did_request_scroll(x_delta, y_delta);
}
void PageHost::page_did_request_scroll_into_view(const Gfx::IntRect& rect)

View file

@ -41,7 +41,7 @@ private:
virtual void page_did_request_cursor_change(Gfx::StandardCursor) override;
virtual void page_did_layout() override;
virtual void page_did_change_title(const String&) override;
virtual void page_did_request_scroll(int) override;
virtual void page_did_request_scroll(i32, i32) 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

@ -12,7 +12,7 @@ endpoint WebContentClient
did_request_cursor_change(i32 cursor_type) =|
did_layout(Gfx::IntSize content_size) =|
did_change_title(String title) =|
did_request_scroll(int wheel_delta) =|
did_request_scroll(i32 x_delta, i32 y_delta) =|
did_request_scroll_into_view(Gfx::IntRect rect) =|
did_enter_tooltip_area(Gfx::IntPoint content_position, String title) =|
did_leave_tooltip_area() =|