diff options
author | Jørgen Lind <jorgen.lind@theqtcompany.com> | 2015-07-30 14:53:35 +0200 |
---|---|---|
committer | Jørgen Lind <jorgen.lind@theqtcompany.com> | 2015-08-28 13:09:42 +0200 |
commit | ce58545b220a49354533a27ef79cdbc8d50186cd (patch) | |
tree | 660232f61bc971d68c29b37acfa9c709f617c697 /src/compositor/compositor_api/qwaylandsurface.cpp | |
parent | 5edaac978e01ead8648aad91f0d050748f7a8915 (diff) |
Rework how we manage extensions
Change-Id: If2cbf096e7419bc1bda007d5167ce39d1a5d50ae
Diffstat (limited to 'src/compositor/compositor_api/qwaylandsurface.cpp')
-rw-r--r-- | src/compositor/compositor_api/qwaylandsurface.cpp | 147 |
1 files changed, 5 insertions, 142 deletions
diff --git a/src/compositor/compositor_api/qwaylandsurface.cpp b/src/compositor/compositor_api/qwaylandsurface.cpp index 0f722f334..cc463d08a 100644 --- a/src/compositor/compositor_api/qwaylandsurface.cpp +++ b/src/compositor/compositor_api/qwaylandsurface.cpp @@ -40,19 +40,18 @@ #include <private/qobject_p.h> #include "wayland_wrapper/qwlsurface_p.h" -#include "wayland_wrapper/qwlextendedsurface_p.h" -#include "wayland_wrapper/qwlsubsurface_p.h" #include "wayland_wrapper/qwlcompositor_p.h" -#include "wayland_wrapper/qwlshellsurface_p.h" #include "wayland_wrapper/qwlinputdevice_p.h" #include "wayland_wrapper/qwldatadevice_p.h" #include "wayland_wrapper/qwldatadevicemanager_p.h" +#include "extensions/qwlextendedsurface_p.h" +#include "extensions/qwlsubsurface_p.h" + #include "qwaylandcompositor.h" #include "qwaylandclient.h" #include "qwaylandsurface_p.h" #include "qwaylandbufferref.h" -#include "qwaylandsurfaceinterface.h" #include "qwaylandoutput.h" #include <QtGui/QGuiApplication> @@ -136,14 +135,13 @@ QWaylandSurface::QWaylandSurface(wl_client *client, quint32 id, int version, QWa } QWaylandSurface::QWaylandSurface(QWaylandSurfacePrivate *dptr) - : QObject(*dptr) + : QObject(*dptr) { } QWaylandSurface::~QWaylandSurface() { Q_D(QWaylandSurface); - qDeleteAll(d->interfaces); d->m_compositor->unregisterSurface(this); d->notifyViewsAboutDestruction(); } @@ -160,7 +158,7 @@ QWaylandSurface *QWaylandSurface::parentSurface() const { Q_D(const QWaylandSurface); if (d->subSurface() && d->subSurface()->parent()) { - return d->subSurface()->parent()->waylandSurface(); + return d->subSurface()->parent()->surface(); } return 0; } @@ -174,18 +172,6 @@ QLinkedList<QWaylandSurface *> QWaylandSurface::subSurfaces() const return QLinkedList<QWaylandSurface *>(); } -void QWaylandSurface::addInterface(QWaylandSurfaceInterface *iface) -{ - Q_D(QWaylandSurface); - d->interfaces.prepend(iface); -} - -void QWaylandSurface::removeInterface(QWaylandSurfaceInterface *iface) -{ - Q_D(QWaylandSurface); - d->interfaces.removeOne(iface); -} - bool QWaylandSurface::visible() const { return isMapped(); @@ -203,44 +189,12 @@ QSize QWaylandSurface::size() const return d->size(); } -void QWaylandSurface::requestSize(const QSize &size) -{ - Q_D(QWaylandSurface); - QWaylandSurfaceResizeOp op(size); - if (!sendInterfaceOp(op)) { - int id = wl_resource_get_id(d->resource()->handle); - qWarning("No surface interface forwarded the resize request for this surface (wl_surface@%d).", id); - } -} - -Qt::ScreenOrientations QWaylandSurface::orientationUpdateMask() const -{ - Q_D(const QWaylandSurface); - if (!d->extendedSurface()) - return Qt::PrimaryOrientation; - return d->extendedSurface()->contentOrientationMask(); -} - Qt::ScreenOrientation QWaylandSurface::contentOrientation() const { Q_D(const QWaylandSurface); return d->contentOrientation(); } -QWaylandSurface::WindowFlags QWaylandSurface::windowFlags() const -{ - Q_D(const QWaylandSurface); - if (!d->extendedSurface()) - return QWaylandSurface::WindowFlags(0); - return d->extendedSurface()->windowFlags(); -} - -QWaylandSurface::WindowType QWaylandSurface::windowType() const -{ - Q_D(const QWaylandSurface); - return d->windowType; -} - QWaylandSurface::Origin QWaylandSurface::origin() const { Q_D(const QWaylandSurface); @@ -265,24 +219,6 @@ QtWayland::Surface * QWaylandSurface::handle() return d; } -QVariantMap QWaylandSurface::windowProperties() const -{ - Q_D(const QWaylandSurface); - if (!d->extendedSurface()) - return QVariantMap(); - - return d->extendedSurface()->windowProperties(); -} - -void QWaylandSurface::setWindowProperty(const QString &name, const QVariant &value) -{ - Q_D(QWaylandSurface); - if (!d->extendedSurface()) - return; - - d->extendedSurface()->setWindowProperty(name, value); -} - QWaylandCompositor *QWaylandSurface::compositor() const { Q_D(const QWaylandSurface); @@ -303,63 +239,12 @@ void QWaylandSurface::setPrimaryOutput(QWaylandOutput *output) d->setPrimaryOutput(output->handle()); } -QWindow::Visibility QWaylandSurface::visibility() const -{ - Q_D(const QWaylandSurface); - return d->m_visibility; -} - -void QWaylandSurface::setVisibility(QWindow::Visibility v) -{ - Q_D(QWaylandSurface); - if (v == visibility()) - return; - - d->m_visibility = v; - QWaylandSurfaceSetVisibilityOp op(v); - sendInterfaceOp(op); - - emit visibilityChanged(); -} - -QWaylandSurfaceView *QWaylandSurface::shellView() const -{ - Q_D(const QWaylandSurface); - return d->shellSurface() ? d->shellSurface()->view() : Q_NULLPTR; -} - -bool QWaylandSurface::sendInterfaceOp(QWaylandSurfaceOp &op) -{ - Q_D(QWaylandSurface); - foreach (QWaylandSurfaceInterface *iface, d->interfaces) { - if (iface->runOperation(&op)) - return true; - } - return false; -} - -void QWaylandSurface::ping() -{ - Q_D(QWaylandSurface); - uint32_t serial = wl_display_next_serial(compositor()->waylandDisplay()); - QWaylandSurfacePingOp op(serial); - if (!sendInterfaceOp(op)) { - int id = wl_resource_get_id(d->resource()->handle); - qWarning("No surface interface forwarded the ping for this surface (wl_surface@%d).", id); - } -} - void QWaylandSurface::sendFrameCallbacks() { Q_D(QWaylandSurface); d->sendFrameCallback(); } -void QWaylandSurface::sendOnScreenVisibilityChange(bool visible) -{ - setVisibility(visible ? QWindow::AutomaticVisibility : QWindow::Hidden); -} - QString QWaylandSurface::className() const { Q_D(const QWaylandSurface); @@ -399,13 +284,6 @@ void QWaylandSurface::destroy() deref(); } -void QWaylandSurface::destroySurface() -{ - QWaylandSurfaceOp op(QWaylandSurfaceOp::Close); - if (!sendInterfaceOp(op)) - emit surfaceDestroyed(); -} - void QWaylandSurface::enter(QWaylandOutput *output) { Q_D(QWaylandSurface); @@ -465,12 +343,6 @@ QList<QWaylandSurfaceView *> QWaylandSurface::views() const return d->views; } -QList<QWaylandSurfaceInterface *> QWaylandSurface::interfaces() const -{ - Q_D(const QWaylandSurface); - return d->interfaces; -} - QWaylandSurface *QWaylandSurface::fromResource(::wl_resource *res) { QtWayland::Surface *s = QtWayland::Surface::fromResource(res); @@ -502,15 +374,6 @@ void QWaylandSurfacePrivate::setClassName(const QString &className) } } -void QWaylandSurfacePrivate::setType(QWaylandSurface::WindowType type) -{ - Q_Q(QWaylandSurface); - if (windowType != type) { - windowType = type; - emit q->windowTypeChanged(type); - } -} - void QWaylandSurfacePrivate::refView(QWaylandSurfaceView *view) { if (views.contains(view)) |