diff --git a/headers/private/servers/app/DrawingEngine.h b/headers/private/servers/app/DrawingEngine.h index 53135f92f8..4646674b87 100644 --- a/headers/private/servers/app/DrawingEngine.h +++ b/headers/private/servers/app/DrawingEngine.h @@ -69,9 +69,6 @@ public: void CopyRegion(/*const*/ BRegion* region, int32 xOffset, int32 yOffset); - void CopyRegionList(BList* list, BList* pList, - int32 rCount, BRegion* clipReg); - void InvertRect(BRect r); void DrawBitmap(ServerBitmap *bitmap, diff --git a/src/servers/app/drawing/DrawingEngine.cpp b/src/servers/app/drawing/DrawingEngine.cpp index cf9155b9b5..626a4dbfdb 100644 --- a/src/servers/app/drawing/DrawingEngine.cpp +++ b/src/servers/app/drawing/DrawingEngine.cpp @@ -265,7 +265,9 @@ DrawingEngine::CopyRegion(/*const*/ BRegion* region, // This needs to be investigated, I'm doing this because of // gut feeling. if (WriteLock()) { - fGraphicsCard->HideSoftwareCursor(region->Frame()); + BRect frame = region->Frame(); + frame = frame | frame.OffsetByCopy(xOffset, yOffset); + fGraphicsCard->HideSoftwareCursor(frame); int32 count = region->CountRects(); @@ -375,36 +377,6 @@ DrawingEngine::CopyRegion(/*const*/ BRegion* region, } } -// CopyRegionList -// -// * used to move windows around on screen -// TODO: Since the regions are passed to CopyRegion() one by one, -// the case of different regions overlapping each other at source -// and/or dest locations is not handled. -// We also don't handle the case where multiple regions should have -// been combined into one larger region (with effectively the same -// rects), so that the sorting would compare them all at once. If -// this turns out to be a problem, we can easily rewrite the function -// here. In any case, to copy overlapping regions in app_server doesn't -// make much sense to me. -void -DrawingEngine::CopyRegionList(BList* list, BList* pList, - int32 rCount, BRegion* clipReg) -{ - // NOTE: Write locking because we might use HW acceleration. - // This needs to be investigated, I'm doing this because of - // gut feeling. - if (WriteLock()) { - for (int32 i = 0; i < rCount; i++) { - BRegion* region = (BRegion*)list->ItemAt(i); - BPoint* offset = (BPoint*)pList->ItemAt(i); - CopyRegion(region, (int32)offset->x, (int32)offset->y); - } - - WriteUnlock(); - } -} - // InvertRect void DrawingEngine::InvertRect(BRect r)