Details
-
Bug
-
Resolution: Done
-
P4: Low
-
5.14.2
-
None
-
-
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:
- Run the attached example.
- Try to toggle fullscreen with the toggle fullscreen button, it doesn't change the size of the window.
- Move the window with the move button.
- Try toggling fullscreen again, this time it works.
Attachments
Issue Links
- relates to
-
QTBUG-17548 Widget with Qt::FramelessWindowHint and Qt::WA_TranslucentBackground stops painting after minimize/restore
- Closed
-
QTBUG-83448 Window is incorrectly moved to the top left corner of the screen when restoring from full screen on high dpi setups.
- Closed
For Gerrit Dashboard: QTBUG-83449 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
297014,2 | Windows QPA: Fix geometry when firing a full expose | 5.15 | qt/qtbase | Status: MERGED | +2 | 0 |
297015,2 | Windows QPA: Fix showing translucent windows maximized/full screen | 5.15 | qt/qtbase | Status: MERGED | +2 | 0 |