mirror of
https://github.com/RGBCube/serenity
synced 2025-07-26 02:57:36 +00:00
PDFViewer: Clear rendered page cache on application resize
When resizing the application, the pages are expected to grow or shrink proportionally. This means that after a resize, we need to rerender every page.
This commit is contained in:
parent
8da99c3014
commit
b2f79a74d4
2 changed files with 13 additions and 0 deletions
|
@ -101,6 +101,13 @@ void PDFViewer::paint_event(GUI::PaintEvent& event)
|
|||
painter.blit({ x, y }, *page, page->rect());
|
||||
}
|
||||
|
||||
void PDFViewer::resize_event(GUI::ResizeEvent&)
|
||||
{
|
||||
for (auto& map : m_rendered_page_list)
|
||||
map.clear();
|
||||
update();
|
||||
}
|
||||
|
||||
void PDFViewer::mousewheel_event(GUI::MouseEvent& event)
|
||||
{
|
||||
if (!m_document)
|
||||
|
|
|
@ -18,6 +18,11 @@ class PDFViewer : public GUI::AbstractScrollableWidget {
|
|||
C_OBJECT(PDFViewer)
|
||||
|
||||
public:
|
||||
enum class PageViewMode {
|
||||
Single,
|
||||
Multiple,
|
||||
};
|
||||
|
||||
virtual ~PDFViewer() override = default;
|
||||
|
||||
ALWAYS_INLINE u32 current_page() const { return m_current_page_index; }
|
||||
|
@ -37,6 +42,7 @@ protected:
|
|||
PDFViewer();
|
||||
|
||||
virtual void paint_event(GUI::PaintEvent&) override;
|
||||
virtual void resize_event(GUI::ResizeEvent&) override;
|
||||
virtual void mousewheel_event(GUI::MouseEvent&) override;
|
||||
virtual void mousedown_event(GUI::MouseEvent&) override;
|
||||
virtual void mouseup_event(GUI::MouseEvent&) override;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue