Details
-
Task
-
Resolution: Done
-
P2: Important
-
None
-
None
Description
In the beginning, there was a direct mapping between a QWaylandWindow and a wl_surface.
With xdg_shell (and other shell) this is not the case anymore. Changing certain properties of a QWindow requires creating a new wl_surface (because it changes role). This is problematic because some parts of the platform plugin relies on this assumption to identify if the wl_surface has changed.
We should therefore use composition rather than inheritance. I.e. a QWaylandWindow may have a wl_surface.
Furthermore, ownership may not even be direct, i.e. the QWaylandWindow may have an xdg_surface which has a wl_surface.
This would also hopefully let us reuse the new wl_surface class for things that are not a QPlatformWindow, but still require a wl_surface, such as the cursor surface, or parts of window decorations.
Attachments
For Gerrit Dashboard: QTBUG-74373 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
255579,3 | Client: Make QWaylandWindow's wl_surface inheritance private | dev | qt/qtwayland | Status: MERGED | +2 | 0 |
258276,6 | Client: Remove QWaylandWindow wl_surface inheritance | dev | qt/qtwayland | Status: MERGED | -2 | 0 |
258294,3 | Client: Make CursorSurface inherit from QWaylandSurface | dev | qt/qtwayland | Status: MERGED | +2 | 0 |
258309,5 | Client: Use a QWaylandSurface for pointer focus | dev | qt/qtwayland | Status: MERGED | -1 | 0 |