Details
-
Bug
-
Resolution: Done
-
P2: Important
-
5.3.1, 5.4.0
-
None
-
b08cc0ec6f096d0e6764486c81264c24a406bee1
Description
QExposeEvent::region() will contain regions in different coordinate systems on the different platforms. This is difficult to realize at first since this region() is rarely used in practice, but it causes issues immediately once something tries to rely on it.
For example on xcb, where the X expose events contain local coordinates, this region will be local. On cocoa however, it is global (or relative to the parent for child windows). On windows, it is mostly local, although there are some occurrences of passing geometry() as the region in qwindowswindow.cpp and that is non-local.
The behaviour should be unified and documented. The correct solution is to make the region local, like it already is on X. Unfortunately this means that platform plugins that blindly pass window->geometry() as the exposed region are all broken.