wayland/layershell: refactor layer shell surface integration

In addition to the much needed cleanup:

- The bridge/extension type is now directly tied to the QWindow
instead of the WlrLayershell object, and is much smaller.
- Layer requests are now comitted via polish instead of for each
change individually.
This commit is contained in:
outfoxxed 2025-05-13 14:43:48 -07:00
parent 6a8284dae3
commit e0cff677a5
Signed by untrusted user: outfoxxed
GPG key ID: 4C88A185FB89301E
13 changed files with 366 additions and 495 deletions

View file

@ -5,14 +5,18 @@
#include <qtclasshelpermacros.h>
#include <qwayland-wlr-layer-shell-unstable-v1.h>
class QSWaylandLayerShellIntegration
: public QtWaylandClient::QWaylandShellIntegrationTemplate<QSWaylandLayerShellIntegration>
namespace qs::wayland::layershell {
class LayerShellIntegration
: public QtWaylandClient::QWaylandShellIntegrationTemplate<LayerShellIntegration>
, public QtWayland::zwlr_layer_shell_v1 {
public:
QSWaylandLayerShellIntegration();
~QSWaylandLayerShellIntegration() override;
Q_DISABLE_COPY_MOVE(QSWaylandLayerShellIntegration);
LayerShellIntegration();
~LayerShellIntegration() override;
Q_DISABLE_COPY_MOVE(LayerShellIntegration);
QtWaylandClient::QWaylandShellSurface* createShellSurface(QtWaylandClient::QWaylandWindow* window
) override;
};
} // namespace qs::wayland::layershell