From f7c8477593c144bfdfe9859b4df093b0388c6faf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stephan=20A=C3=9Fmus?= Date: Thu, 6 Nov 2008 19:19:54 +0000 Subject: [PATCH] * Don't invalidate anything in offscreen windows. NetPositive is doing slightly strange redrawing, including scrolling the offscreen view that it uses in "flicker free" mode (which is the default). Invalidation does not work in offscreen windows, since the client thread is not running and certainly won't redraw anything. But that will leave a non-drawable region on the app_server side of things. Simply don't invalidate in this case. From what I have seen, redrawing in NetPositive seems to work fine now. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28538 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/servers/app/Window.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/servers/app/Window.cpp b/src/servers/app/Window.cpp index cacfd23ae1..683d1a7524 100644 --- a/src/servers/app/Window.cpp +++ b/src/servers/app/Window.cpp @@ -414,7 +414,7 @@ Window::ScrollViewBy(View* view, int32 dx, int32 dy) //fDrawingEngine->FillRegion(dirty, rgb_color{ 255, 0, 255, 255 }); //snooze(2000); - if (IsVisible() && view->IsVisible()) { + if (!IsOffscreenWindow() && IsVisible() && view->IsVisible()) { dirty->IntersectWith(&VisibleContentRegion()); _TriggerContentRedraw(*dirty); } @@ -669,7 +669,7 @@ Window::MarkContentDirty(BRegion& regionOnScreen) // since this won't affect other windows, read locking // is sufficient. If there was no dirty region before, // an update message is triggered - if (fHidden) + if (fHidden || IsOffscreenWindow()) return; regionOnScreen.IntersectWith(&VisibleContentRegion()); @@ -682,7 +682,7 @@ void Window::MarkContentDirtyAsync(BRegion& regionOnScreen) { // NOTE: see comments in ProcessDirtyRegion() - if (fHidden) + if (fHidden || IsOffscreenWindow()) return; regionOnScreen.IntersectWith(&VisibleContentRegion());