From 2828c4d1d743ca8de305a696563995dc6fcd1cda Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Axel=20D=C3=B6rfler?= Date: Mon, 27 Mar 2006 23:58:05 +0000 Subject: [PATCH] Scrolling and CopyBits() no longer clobber the current screen if the window isn't even visible. This closes bug #341. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16905 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/servers/app/WindowLayer.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/servers/app/WindowLayer.cpp b/src/servers/app/WindowLayer.cpp index 0be578c751..a31a24ad09 100644 --- a/src/servers/app/WindowLayer.cpp +++ b/src/servers/app/WindowLayer.cpp @@ -429,8 +429,10 @@ WindowLayer::ScrollViewBy(ViewLayer* view, int32 dx, int32 dy) //fDrawingEngine->FillRegion(dirty, RGBColor(255, 0, 255, 255)); //snooze(2000); - dirty.IntersectWith(&VisibleContentRegion()); - _TriggerContentRedraw(dirty); + if (IsVisible() && view->IsVisible()) { + dirty.IntersectWith(&VisibleContentRegion()); + _TriggerContentRedraw(dirty); + } fDesktop->UnlockSingleWindow(); } @@ -441,7 +443,7 @@ WindowLayer::ScrollViewBy(ViewLayer* view, int32 dx, int32 dy) void WindowLayer::CopyContents(BRegion* region, int32 xOffset, int32 yOffset) { - if (!fHidden && fDesktop && fDesktop->LockSingleWindow()) { + if (IsVisible() && fDesktop && fDesktop->LockSingleWindow()) { BRegion newDirty(*region); // clip the region to the visible contents at the