summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/wasm/qwasmwindowstack.cpp
Commit message (Collapse)AuthorAgeFilesLines
* wasm: Fix stacking order problem for transient parent windowsEven Oscar Andersen2025-05-261-203/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Windows with a transient parent does not reflect the relationship in the stacking order. Essentially AboveTransientParent is missing as a configuration choice. What makes this slightly convoluted is that the window stack does not depend on the window (for testability). We solve this problem by making the stack and treenode templates, and provide test class as arguments when testing. QWasmWindow and QWasmScreen are not templated as before. There is also a new order type StayAboveTransientParent. Which means that we can no longer use order type to get to the group location (Since StayAboveTransientParent can map to either of the three types). The window stack tests have been updated to handle the StayAboveTransientParent type. Finally, we do not do anything with a normal parent child relationship as this should already work correctly. Fixes: QTBUG-131699 Change-Id: Ie08e18f9e0a2339175c4a09da0a831f031df71e1 Reviewed-by: Lorn Potter <[email protected]>
* Support always on top/bottom window flags on WASMMikolaj Boc2023-02-221-31/+111
| | | | | | | | | | | | | | | | | | The window stack will now upkeep three groups of windows, always on bottom (1), regular (2), always on top (3). Windows belonging to (3) will always appear on top of (2) and (1), and windows from (2) will always appear on top of (1). The first window created in the application gets the (1) status, which is in line with the root window mechanism used before. Activation has now been decoupled from the top position on the window stack as a window in (1) or (2) may be active, in spite of the top window belonging to a higher group. Fixes: QTBUG-110098 Change-Id: I51f4d2d47163fab26ce5ef28f7a4f23a522c7f91 Reviewed-by: Lorn Potter <[email protected]>
* Fix typo in QWasmWindowStack's nameMikolaj Boc2022-10-201-17/+17
| | | | | | | 'Wasm' in it is duplicated. Change-Id: Ie00e02fb7ae4d9e13f490ce2d46a4eabf3f5710c Reviewed-by: Lorn Potter <[email protected]>
* Fix QWasmWindowStack::topWindow when the stack is emptyMikolaj Boc2022-09-121-1/+1
| | | | | | | | | | | The method should by contract return nullptr when the stack is empty, but it crashes in this case. Also, unit-test the case. Pick-to: 6.4 Change-Id: If64b71e761efd9a5cd5af407cd68cba7f8dbc8e2 Reviewed-by: Morten Johan Sørvig <[email protected]>
* Resolve window focusing problems on WASMMikolaj Boc2022-08-241-4/+4
| | | | | | | | | | | | - Moved the modal window resolution to QWasmWindow::requestActivateWindow so that multiple async activation events are not issued in unpredictable patterns. - Request activation on added windows and on stack top in case of window removal Pick-to: 6.4 Change-Id: I6f02cf1b7e83abb7961caf311ffc83e91c8bf810 Reviewed-by: Morten Johan Sørvig <[email protected]>
* Maintain the window z-order properly in wasm compositorMikolaj Boc2022-08-161-0/+123
The old stack structure used to keep track of windows has been improved to conform to the actual windowing assumptions: there shall be one root window, which is always at the bottom. The first created window immediately becomes the root window. Should the root window be removed, all windows are non-root, i.e. any of them can become the top-level window Fixes: QTBUG-105094 Pick-to: 6.4 Change-Id: Ic553244fa9f5bc3ee590b702935e66cfc62d5f8f Reviewed-by: Morten Johan Sørvig <[email protected]>