Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-40470

QExposeEvent::region() interpretation differs between platform plugins

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • P2: Important
    • 5.4.0
    • 5.3.1, 5.4.0
    • GUI: Window management
    • 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.

      Attachments

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

            lagocs Laszlo Agocs
            lagocs Laszlo Agocs
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes