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
This commit is contained in:
Axel Dörfler 2006-03-27 23:58:05 +00:00
parent 74e8df0e6e
commit 2828c4d1d7

View File

@ -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