From 55112db6ea5172cfb854ce575f905689cda0a2ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Axel=20D=C3=B6rfler?= Date: Thu, 29 May 2008 18:16:07 +0000 Subject: [PATCH] * Do not update the internal window state in case sending the message failed. * This is not perfect, but it makes Tracker catch up and redraw when the next event is due. This improves the situation in bug #2212. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25708 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/servers/app/Window.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/servers/app/Window.cpp b/src/servers/app/Window.cpp index 4d79ef7cc2..52a96d138c 100644 --- a/src/servers/app/Window.cpp +++ b/src/servers/app/Window.cpp @@ -1839,7 +1839,12 @@ Window::_SendUpdateMessage() return; BMessage message(_UPDATE_); - ServerWindow()->SendMessageToClient(&message); + if (ServerWindow()->SendMessageToClient(&message) != B_OK) { + // If sending the message failed, we'll just keep adding to the dirty + // region until sending was successful. + // TODO: we might want to automatically resend this message in this case + return; + } fUpdateRequested = true; fEffectiveDrawingRegionValid = false;