13#include <KWayland/Client/xdgshell.h>
45 KWayland::Client::Pointer *
pointer()
const;
49 void update(wl_buffer *buffer, qreal scale,
const QPoint &hotspot);
54 KWayland::Client::Pointer *m_pointer =
nullptr;
55 std::unique_ptr<KWayland::Client::Surface> m_surface;
56 wl_buffer *m_buffer =
nullptr;
59 bool m_enabled =
true;
75 KWayland::Client::Surface *
surface()
const;
79 void lockPointer(KWayland::Client::Pointer *pointer,
bool lock);
85 void framePending(
const std::shared_ptr<OutputFrame> &frame);
88 void handleConfigure(
const QSize &size, KWayland::Client::XdgShellSurface::States states, quint32 serial);
89 void updateWindowTitle();
90 void applyConfigure(
const QSize &size, quint32 serial);
92 std::unique_ptr<RenderLoop> m_renderLoop;
93 std::unique_ptr<KWayland::Client::Surface> m_surface;
94 std::unique_ptr<KWayland::Client::XdgShellSurface> m_xdgShellSurface;
95 std::unique_ptr<KWayland::Client::LockedPointer> m_pointerLock;
96 std::unique_ptr<KWayland::Client::XdgDecoration> m_xdgDecoration;
98 std::unique_ptr<WaylandCursor> m_cursor;
99 QTimer m_turnOffTimer;
100 bool m_hasPointerLock =
false;
101 bool m_ready =
false;
102 std::shared_ptr<OutputFrame> m_frame;
103 quint32 m_pendingConfigureSerial = 0;
104 QSize m_pendingConfigureSize;
105 QTimer m_configureThrottleTimer;
The Client class encapsulates a window decoration frame.
DpmsMode dpmsMode() const
Class encapsulating all Wayland data structures needed by the Egl backend.
KWayland::Client::Pointer * pointer() const
WaylandCursor(WaylandBackend *backend)
void update(wl_buffer *buffer, qreal scale, const QPoint &hotspot)
void setEnabled(bool enable)
void setPointer(KWayland::Client::Pointer *pointer)
void lockPointer(KWayland::Client::Pointer *pointer, bool lock)
void init(const QSize &pixelSize, qreal scale)
WaylandCursor * cursor() const
void resize(const QSize &pixelSize)
void framePending(const std::shared_ptr< OutputFrame > &frame)
WaylandBackend * backend() const
void updateDpmsMode(DpmsMode dpmsMode)
void setDpmsMode(DpmsMode mode) override
void updateEnabled(bool enabled)
~WaylandOutput() override
bool updateCursorLayer() override
WaylandOutput(const QString &name, WaylandBackend *backend)
RenderLoop * renderLoop() const override
KWayland::Client::Surface * surface() const