From 0f6c5783d3a7247941fc0b3d250c9fe25f2039b3 Mon Sep 17 00:00:00 2001 From: Kevin Meyer Date: Sun, 5 Jul 2020 12:45:56 +0200 Subject: [PATCH] WebContent: Use available size for bitmap (#2701) After adding the scrolling feature, content available space reduced and thus the bitmap size was always larger, than the inner size. This lead to the horizontal scrollbar always beeing engaged. --- Demos/WebView/WebContentView.cpp | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/Demos/WebView/WebContentView.cpp b/Demos/WebView/WebContentView.cpp index aa2b7eea34..47d226d585 100644 --- a/Demos/WebView/WebContentView.cpp +++ b/Demos/WebView/WebContentView.cpp @@ -48,7 +48,7 @@ void WebContentView::load(const URL& url) void WebContentView::paint_event(GUI::PaintEvent& event) { - GUI::Frame::paint_event(event); + GUI::ScrollableWidget::paint_event(event); GUI::Painter painter(*this); painter.add_clip_rect(frame_inner_rect()); @@ -61,11 +61,12 @@ void WebContentView::paint_event(GUI::PaintEvent& event) void WebContentView::resize_event(GUI::ResizeEvent& event) { - GUI::Widget::resize_event(event); - auto bitmap = Gfx::Bitmap::create(Gfx::BitmapFormat::RGB32, event.size()); + GUI::ScrollableWidget::resize_event(event); + + auto bitmap = Gfx::Bitmap::create(Gfx::BitmapFormat::RGB32, available_size()); m_bitmap = bitmap->to_bitmap_backed_by_shared_buffer(); m_bitmap->shared_buffer()->share_with(client().server_pid()); - client().post_message(Messages::WebContentServer::SetViewportRect(Gfx::IntRect({ horizontal_scrollbar().value(), vertical_scrollbar().value() }, event.size()))); + client().post_message(Messages::WebContentServer::SetViewportRect(Gfx::IntRect({ horizontal_scrollbar().value(), vertical_scrollbar().value() }, m_bitmap->size()))); request_repaint(); } @@ -116,7 +117,7 @@ void WebContentView::notify_server_did_change_title(Badge, con void WebContentView::did_scroll() { - client().post_message(Messages::WebContentServer::SetViewportRect(Gfx::IntRect({ horizontal_scrollbar().value(), vertical_scrollbar().value() }, size()))); + client().post_message(Messages::WebContentServer::SetViewportRect(visible_content_rect())); request_repaint(); }