34 Q_DECLARE_PUBLIC(QWaylandQuickShellSurfaceItem)
36 QWaylandQuickShellSurfaceItemPrivate() {}
38 void setShellSurface(QWaylandShellSurface *shellSurface);
39 QWaylandQuickShellSurfaceItem *maybeCreateAutoPopup(QWaylandShellSurface* shellSurface);
40 static QWaylandQuickShellSurfaceItemPrivate *get(QWaylandQuickShellSurfaceItem *item) {
return item->d_func(); }
42 void raise() override;
43 void lower() override;
45 QWaylandQuickShellIntegration *m_shellIntegration =
nullptr;
46 QWaylandShellSurface *m_shellSurface =
nullptr;
47 QQuickItem *m_moveItem =
nullptr;
48 bool m_autoCreatePopupItems =
true;
49 bool staysOnTop =
false;
50 bool staysOnBottom =
false;
57 typedef std::function<
void()> CallbackFunction;
58 static void startFilter(QWaylandClient *client, CallbackFunction closePopupCallback);
59 static void cancelFilter();
62 void timerEvent(QTimerEvent *event) override;
67 QWaylandQuickShellEventFilter(QObject *parent =
nullptr);
68 bool eventFilter(QObject *, QEvent *) override;
69 bool eventFilterInstalled =
false;
70 bool waitForRelease =
false;
71 QPointer<QWaylandClient> client;
72 CallbackFunction closePopups =
nullptr;
73 QBasicTimer mousePressTimeout;
74 static QWaylandQuickShellEventFilter *self;