diff options
Diffstat (limited to 'Libraries')
-rw-r--r-- | Libraries/LibGUI/Window.cpp | 13 | ||||
-rw-r--r-- | Libraries/LibGUI/Window.h | 1 |
2 files changed, 11 insertions, 3 deletions
diff --git a/Libraries/LibGUI/Window.cpp b/Libraries/LibGUI/Window.cpp index 3386f9a86c..d4a60148d0 100644 --- a/Libraries/LibGUI/Window.cpp +++ b/Libraries/LibGUI/Window.cpp @@ -341,7 +341,14 @@ bool Window::is_visible() const void Window::update() { - update({ 0, 0, width(), height() }); + auto rect = this->rect(); + update({ 0, 0, rect.width(), rect.height() }); +} + +void Window::force_update() +{ + auto rect = this->rect(); + WindowServerConnection::the().post_message(Messages::WindowServer::InvalidateRect(m_window_id, { { 0, 0, rect.width(), rect.height() } }, true)); } void Window::update(const Gfx::Rect& a_rect) @@ -366,7 +373,7 @@ void Window::update(const Gfx::Rect& a_rect) Vector<Gfx::Rect> rects_to_send; for (auto& r : rects) rects_to_send.append(r); - WindowServerConnection::the().post_message(Messages::WindowServer::InvalidateRect(m_window_id, rects_to_send)); + WindowServerConnection::the().post_message(Messages::WindowServer::InvalidateRect(m_window_id, rects_to_send, false)); }); } m_pending_paint_event_rects.append(a_rect); @@ -626,7 +633,7 @@ void Window::schedule_relayout() void Window::update_all_windows(Badge<WindowServerConnection>) { for (auto* window : *all_windows) { - window->update(); + window->force_update(); } } diff --git a/Libraries/LibGUI/Window.h b/Libraries/LibGUI/Window.h index 7c2478242d..33f7e1d689 100644 --- a/Libraries/LibGUI/Window.h +++ b/Libraries/LibGUI/Window.h @@ -182,6 +182,7 @@ private: NonnullRefPtr<Gfx::Bitmap> create_shared_bitmap(Gfx::BitmapFormat, const Gfx::Size&); void set_current_backing_bitmap(Gfx::Bitmap&, bool flush_immediately = false); void flip(const Vector<Gfx::Rect, 32>& dirty_rects); + void force_update(); RefPtr<Gfx::Bitmap> m_front_bitmap; RefPtr<Gfx::Bitmap> m_back_bitmap; |