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

Toggling fullscreen for frameless window with no system background doesn't work if its position is 0,0.

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • P4: Low
    • 5.15.0 Beta4
    • 5.14.2
    • QPA: Windows
    • None
    • Windows
    • 18fa1ed74745931c15d525703ac05bbf3f2c9c5b (qt/qtbase/5.15)

    Description

      After some debugging I found that this is because the only time the window is updated is when a WM_MOVE happens, and it always happens when you toggle fullscreen except for this edge case. It got triggered by QTBUG-83448 so together these issues cause a pretty big problem.

      For some reason it seems to only happens if Qt::WA_TranslucentBackground is set but I haven't debugged why.

      In qwindowswindow.cpp I tried to run handleGeometryChange in the end of setWindowState_sys as I noticed that a similar issue in setWindowFlags was solved this way but it seems like it was too early so I'm not quite sure what the best solution would be...

       

      Repro steps:

      1. Run the attached example.
      2. Try to toggle fullscreen with the toggle fullscreen button, it doesn't change the size of the window.
      3. Move the window with the move button.
      4. Try toggling fullscreen again, this time it works.

      Attachments

        1. qtbug83449.zip
          5 kB
        2. QTBUG-83449.cpp
          1 kB
        3. qtbug83449_diag.diff
          5 kB

        Issue Links

          Activity

            People

              kleint Friedemann Kleint
              cyriuz Viktor Arvidsson
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: