diff --git a/src/tests/servers/app/newerClipping/Desktop.cpp b/src/tests/servers/app/newerClipping/Desktop.cpp index 5ab9fb76ca..a27e040f51 100644 --- a/src/tests/servers/app/newerClipping/Desktop.cpp +++ b/src/tests/servers/app/newerClipping/Desktop.cpp @@ -538,6 +538,15 @@ Desktop::MarkDirty(BRegion* region) if (LockClipping()) { // add the new dirty region to the culmulative dirty region fDirtyRegion.Include(region); + +if (fDrawingEngine->Lock()) { + fDrawingEngine->SetHighColor(255, 0, 0); + fDrawingEngine->FillRegion(region); + fDrawingEngine->MarkDirty(region); + fDrawingEngine->Unlock(); + snooze(100000); +} + // send redraw messages to all windows intersecting the dirty region _TriggerWindowRedrawing(region); diff --git a/src/tests/servers/app/newerClipping/WindowLayer.cpp b/src/tests/servers/app/newerClipping/WindowLayer.cpp index b276b6986b..0f4920e0cd 100644 --- a/src/tests/servers/app/newerClipping/WindowLayer.cpp +++ b/src/tests/servers/app/newerClipping/WindowLayer.cpp @@ -313,26 +313,22 @@ void WindowLayer::_DrawContents(ViewLayer* layer) { //printf("%s - DrawContents()\n", Name()); -#if SLOW_DRAWING - snooze(10000); -#endif - if (!layer) layer = fTopLayer; if (fDesktop->ReadLockClipping()) { - BRegion effectiveWindowClipping(fVisibleContentRegion); - effectiveWindowClipping.IntersectWith(fDesktop->DirtyRegion()); + BRegion dirtyContentRegion(fVisibleContentRegion); + dirtyContentRegion.IntersectWith(fDesktop->DirtyRegion()); - if (effectiveWindowClipping.Frame().IsValid()) { + if (dirtyContentRegion.CountRects() > 0) { // send UPDATE message to the client - _MarkContentDirty(&effectiveWindowClipping); + _MarkContentDirty(&dirtyContentRegion); - layer->Draw(fDrawingEngine, &effectiveWindowClipping, + layer->Draw(fDrawingEngine, &dirtyContentRegion, &fVisibleContentRegion, true); - fDesktop->MarkClean(&fContentRegion); + fDesktop->MarkClean(&dirtyContentRegion); } fDesktop->ReadUnlockClipping();