diff --git a/Servers/WindowServer/WSClientConnection.cpp b/Servers/WindowServer/WSClientConnection.cpp index 2f3514e011..5b8a8f9686 100644 --- a/Servers/WindowServer/WSClientConnection.cpp +++ b/Servers/WindowServer/WSClientConnection.cpp @@ -510,10 +510,12 @@ void WSClientConnection::handle_request(const WSAPIDestroyWindowRequest& request void WSClientConnection::post_paint_message(WSWindow& window) { + auto rect_set = window.take_pending_paint_rects(); + if (window.is_minimized()) + return; WSAPI_ServerMessage message; message.type = WSAPI_ServerMessage::Type::Paint; message.window_id = window.window_id(); - auto rect_set = window.take_pending_paint_rects(); auto& rects = rect_set.rects(); message.rect_count = rects.size(); for (int i = 0; i < min(WSAPI_ServerMessage::max_inline_rect_count, rects.size()); ++i) diff --git a/Servers/WindowServer/WSWindow.cpp b/Servers/WindowServer/WSWindow.cpp index a89679a940..8e653f682b 100644 --- a/Servers/WindowServer/WSWindow.cpp +++ b/Servers/WindowServer/WSWindow.cpp @@ -128,6 +128,8 @@ void WSWindow::set_minimized(bool minimized) if (m_minimized == minimized) return; m_minimized = minimized; + if (!minimized) + request_update({ { }, size() }); invalidate(); WSWindowManager::the().notify_minimization_state_changed(*this); }