6 #include "subsurface.h" 8 #include "wayland_pointer_p.h" 10 #include <wayland-client-protocol.h> 17 class Q_DECL_HIDDEN SubSurface::Private
21 void setup(wl_subsurface *subsurface);
23 WaylandPointer<wl_subsurface, wl_subsurface_destroy> subSurface;
26 Mode mode = Mode::Synchronized;
29 static SubSurface *cast(wl_subsurface *native);
37 , parentSurface(parentSurface)
42 void SubSurface::Private::setup(wl_subsurface *subsurface)
45 Q_ASSERT(!subSurface.isValid());
46 subSurface.setup(subsurface);
47 wl_subsurface_set_user_data(subsurface,
this);
50 SubSurface *SubSurface::Private::cast(wl_subsurface *native)
52 return reinterpret_cast<Private*
>(wl_subsurface_get_user_data(native))->q;
57 , d(new Private(surface, parentSurface, this))
61 SubSurface::~SubSurface()
66 void SubSurface::setup(wl_subsurface *subsurface)
71 void SubSurface::destroy()
73 d->subSurface.destroy();
76 void SubSurface::release()
78 d->subSurface.release();
81 bool SubSurface::isValid()
const 83 return d->subSurface.isValid();
93 return d->parentSurface;
98 if (mode == d->mode) {
103 case Mode::Synchronized:
104 wl_subsurface_set_sync(d->subSurface);
106 case Mode::Desynchronized:
107 wl_subsurface_set_desync(d->subSurface);
117 void SubSurface::setPosition(
const QPoint &pos)
123 wl_subsurface_set_position(d->subSurface, pos.
x(), pos.
y());
126 QPoint SubSurface::position()
const 131 void SubSurface::raise()
133 placeAbove(d->parentSurface);
141 placeAbove(sibling->surface());
149 wl_subsurface_place_above(d->subSurface, *sibling);
152 void SubSurface::lower()
154 placeBelow(d->parentSurface);
162 wl_subsurface_place_below(d->subSurface, *sibling);
170 placeBelow(sibling->surface());
178 SubSurface::operator wl_subsurface*()
const 180 return d->subSurface;
183 SubSurface::operator wl_subsurface*()
185 return d->subSurface;
Mode
Operation Mode on how the Surface's commit should behave.
bool isNull() const const
QObject * parent() const const