mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 16:27:35 +00:00
Ladybird/WebView: Notify LibWeb whenever the viewport is scrolled
This commit is contained in:
parent
488da351c0
commit
345faff586
2 changed files with 17 additions and 2 deletions
|
@ -363,6 +363,13 @@ WebView::WebView()
|
||||||
|
|
||||||
verticalScrollBar()->setSingleStep(24);
|
verticalScrollBar()->setSingleStep(24);
|
||||||
horizontalScrollBar()->setSingleStep(24);
|
horizontalScrollBar()->setSingleStep(24);
|
||||||
|
|
||||||
|
QObject::connect(verticalScrollBar(), &QScrollBar::valueChanged, [this](int) {
|
||||||
|
update_viewport_rect();
|
||||||
|
});
|
||||||
|
QObject::connect(horizontalScrollBar(), &QScrollBar::valueChanged, [this](int) {
|
||||||
|
update_viewport_rect();
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
WebView::~WebView()
|
WebView::~WebView()
|
||||||
|
@ -648,8 +655,14 @@ void WebView::paintEvent(QPaintEvent* event)
|
||||||
|
|
||||||
void WebView::resizeEvent(QResizeEvent* event)
|
void WebView::resizeEvent(QResizeEvent* event)
|
||||||
{
|
{
|
||||||
auto scaled_width = int(event->size().width() / m_inverse_pixel_scaling_ratio);
|
QAbstractScrollArea::resizeEvent(event);
|
||||||
auto scaled_height = int(event->size().height() / m_inverse_pixel_scaling_ratio);
|
update_viewport_rect();
|
||||||
|
}
|
||||||
|
|
||||||
|
void WebView::update_viewport_rect()
|
||||||
|
{
|
||||||
|
auto scaled_width = int(size().width() / m_inverse_pixel_scaling_ratio);
|
||||||
|
auto scaled_height = int(size().height() / m_inverse_pixel_scaling_ratio);
|
||||||
Gfx::IntRect rect(horizontalScrollBar()->value(), verticalScrollBar()->value(), scaled_width, scaled_height);
|
Gfx::IntRect rect(horizontalScrollBar()->value(), verticalScrollBar()->value(), scaled_width, scaled_height);
|
||||||
m_page_client->set_viewport_rect(rect);
|
m_page_client->set_viewport_rect(rect);
|
||||||
}
|
}
|
||||||
|
|
|
@ -57,6 +57,8 @@ signals:
|
||||||
void favicon_changed(QIcon);
|
void favicon_changed(QIcon);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
void update_viewport_rect();
|
||||||
|
|
||||||
OwnPtr<HeadlessBrowserPageClient> m_page_client;
|
OwnPtr<HeadlessBrowserPageClient> m_page_client;
|
||||||
|
|
||||||
qreal m_inverse_pixel_scaling_ratio { 1.0 };
|
qreal m_inverse_pixel_scaling_ratio { 1.0 };
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue