Hi Mariam,
the resulting "dirty area" is always one rectangle - also the green rectangle within the Prototyper shows the entire "dirty area".
However, internally the Mosaic framework is collecting up to three dirty regions and tries to minimize the resulting update area. Instead of adding all rectangular areas that have to be redrawn into one area, the Mosaic framework tries to minimize that by collecting three areas. Each time a view is invalid, its Bounds are compared with the three dirty regions and added to that region that fits best.
This is just an optimization to avoid that a few small GUI components with animations are causing an entire screen update (for example a small area in the top left corner and a small area in the bottom right corner).
You will find the implementation within Core::Root.
The resulting "dirty area" within the main loop and the green rectangle within the Prototyper are covering the union of the updated area.
Do you have any issues with your GUI application?
Best regards,
Manfred