Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
I solved the issue #4502.
The problem was that subsurface.fill, the function defined in surface.c, worked differently from the function pygame.draw.rect.
As the author of issue #4502 showed with the example of 100 * 100 square, even with the same coordinates, surface.fill filled all the 100 * 100 area and pygame.draw.rect filled only the 50 * 50 area.
However, subsurface.fill should work in the same way of pygame.draw.rect, and it means that the function needs to fill the area from the start coordinates (x, y) to the coordinates (x + dx, y + dy) and cut off the area with negative coordinates.
I implemented this, so please check it.