diff --git a/src/servers/app/drawing/DrawingEngine.cpp b/src/servers/app/drawing/DrawingEngine.cpp index 2f30477d0e..fe7a3000df 100644 --- a/src/servers/app/drawing/DrawingEngine.cpp +++ b/src/servers/app/drawing/DrawingEngine.cpp @@ -860,14 +860,17 @@ DrawingEngine::FillRegion(BRegion& r) fSuspendSyncLevel == 0 || cursorTouched); doInSoftware = false; - } else if (fAvailableHWAccleration & HW_ACC_INVERT_REGION - && fPainter->Pattern() == B_SOLID_HIGH - && fPainter->DrawingMode() == B_OP_INVERT) { - r.IntersectWith(fPainter->ClippingRegion()); - fGraphicsCard->InvertRegion(r); } } + if (doInSoftware && fAvailableHWAccleration & HW_ACC_INVERT_REGION + && fPainter->Pattern() == B_SOLID_HIGH + && fPainter->DrawingMode() == B_OP_INVERT) { + r.IntersectWith(fPainter->ClippingRegion()); + fGraphicsCard->InvertRegion(r); + doInSoftware = false; + } + if (doInSoftware) { BRect touched = fPainter->FillRect(r.RectAt(0));