summaryrefslogtreecommitdiff
path: root/Libraries/LibGUI/Window.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Libraries/LibGUI/Window.cpp')
-rw-r--r--Libraries/LibGUI/Window.cpp13
1 files changed, 10 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();
}
}