diff --git a/src/wayland/waylandlayershell.cpp b/src/wayland/waylandlayershell.cpp index ef4c317c..bc59ec77 100644 --- a/src/wayland/waylandlayershell.cpp +++ b/src/wayland/waylandlayershell.cpp @@ -150,6 +150,14 @@ void WaylandLayershell::updateAutoExclusion() { } } +WaylandLayershell* WaylandLayershell::qmlAttachedProperties(QObject* object) { + if (auto* obj = qobject_cast(object)) { + return obj->layer; + } else { + return nullptr; + } +} + // WaylandPanelInterface WaylandPanelInterface::WaylandPanelInterface(QObject* parent) diff --git a/src/wayland/waylandlayershell.hpp b/src/wayland/waylandlayershell.hpp index e33992b1..c40a09de 100644 --- a/src/wayland/waylandlayershell.hpp +++ b/src/wayland/waylandlayershell.hpp @@ -26,6 +26,7 @@ class WaylandLayershell: public ProxyWindowBase { Q_PROPERTY(qint32 exclusiveZone READ exclusiveZone WRITE setExclusiveZone NOTIFY exclusiveZoneChanged); Q_PROPERTY(ExclusionMode::Enum exclusionMode READ exclusionMode WRITE setExclusionMode NOTIFY exclusionModeChanged); Q_PROPERTY(Margins margins READ margins WRITE setMargins NOTIFY marginsChanged); + QML_ATTACHED(WaylandLayershell); QML_ELEMENT; // clang-format on @@ -61,6 +62,8 @@ public: [[nodiscard]] Margins margins() const; void setMargins(Margins margins); // NOLINT + static WaylandLayershell* qmlAttachedProperties(QObject* object); + signals: void layerChanged(); void namespaceChanged(); @@ -131,4 +134,6 @@ public: private: WaylandLayershell* layer; + + friend class WaylandLayershell; };