KisPrecisePaintDeviceWrapper::readRects clamped the input rects to the device extents without regard to the wrap around mode. So if a rect is passed that is outside the image bounds, it is clamped to be zero sized and nothing is read instead of reading from the wrapped position.
This causes all color smudge brushes to be broken when used outside the image bounds in wrap around mode.
This change adds a case for wrap around mode which correctly wraps the rect before clamping.
BUG: 392312