Details
-
Bug
-
Resolution: Done
-
P4: Low
-
5.15.10, 6.3.0
-
-
99c8ffb9f2 (qt/qtbase/dev) 99c8ffb9f2 (qt/tqtc-qtbase/dev) ba2584126b (qt/qtbase/6.4) ba2584126b (qt/tqtc-qtbase/6.4), 7d7be38d9 (dev), 678dccb7a (6.8), 55b69b7f4 (6.7), 98de99f40 (tqtc/lts-6.5)
Description
See the attached project. It prints the values of geometry() and isMaximized() between various calls to showMaximized() and resize().
- The results on Wayland are the "best".
- The behaviour on XCB seems mostly documented (https://doc.qt.io/qt-6/application-windows.html#x11-peculiarities ).
- The behaviour on Windows is either buggy, or it should be documented more clearly.
Outcome on Windows 10 21H2
0. Starting... QRect(640,280 640x480) Maximized? false 1. showMaximized() QRect(0,23 1920x1017) Maximized? true 2. resize(800, 600) QRect(0,23 800x600) Maximized? false 3. resize(1000, 1000) QRect(0,23 1000x1000) Maximized? false 4. showMaximized() QRect(0,23 1000x1000) Maximized? true 5. Stopping...
- The window maximizes correctly in Step #1
- The window changes size in Steps #2 and #3
- The window does not maximize in Step #4
- The Window shrinks in Step #2, but the "Restore" button remains visible while the "Maximize" button does not appear
- geometry() is always consistent with the display
- isMaximized() is not always consistent with the display (see Step #4)
Outcome on Ubuntu 22.04 (XCB)
0. Starting... QRect(0,0 640x480) Maximized? false 1. showMaximized() QRect(74,64 1846x1016) Maximized? true 2. resize(800, 600) QRect(74,64 800x600) Maximized? false 3. resize(1000, 1000) QRect(74,64 1000x1000) Maximized? false 4. showMaximized() QRect(74,64 1000x1000) Maximized? true 5. Stopping...
- The window maximizes correctly in Step #1
- The window stays visibly maximized throughout Steps #2 – #5
- geometry() and isMaximized() are not always consistent with the display
Outcome on Ubuntu 22.04 (Wayland)
0. Starting... QRect(6,60 640x480) Maximized? false 1. showMaximized() QRect(9,90 1840x1020) Maximized? true 2. resize(800, 600) QRect(12,120 1840x1020) Maximized? true 3. resize(1000, 1000) QRect(15,150 1840x1020) Maximized? true 4. showMaximized() QRect(15,150 1840x1020) Maximized? true 5. Stopping...
- Same visible outcomes as the XCB case
- geometry() and isMaximized() are always consistent with the display.
- The (x, y) values of geometry() seem to creep though...?
Workaround
Call showNormal() after resize()