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 /examples | |
parent | 5edaac978e01ead8648aad91f0d050748f7a8915 (diff) |
Rework how we manage extensions
Change-Id: If2cbf096e7419bc1bda007d5167ce39d1a5d50ae
Diffstat (limited to 'examples')
-rw-r--r-- | examples/wayland/multi-output/qml/Chrome.qml | 7 | ||||
-rw-r--r-- | examples/wayland/multi-output/qml/main.qml | 4 | ||||
-rw-r--r-- | examples/wayland/pure-qml/qml/main.qml | 2 | ||||
-rw-r--r-- | examples/wayland/qml-compositor/main.cpp | 3 | ||||
-rw-r--r-- | examples/wayland/qwindow-compositor/qwindow-compositor.pro | 2 | ||||
-rw-r--r-- | examples/wayland/qwindow-compositor/qwindowcompositor.cpp | 18 | ||||
-rw-r--r-- | examples/wayland/server-buffer/compositor/main.cpp | 3 |
7 files changed, 24 insertions, 15 deletions
diff --git a/examples/wayland/multi-output/qml/Chrome.qml b/examples/wayland/multi-output/qml/Chrome.qml index 0f82a44ee..27160f15a 100644 --- a/examples/wayland/multi-output/qml/Chrome.qml +++ b/examples/wayland/multi-output/qml/Chrome.qml @@ -43,8 +43,11 @@ import QtWayland.Compositor 1.0 Item { id: rootChrome - x: clampXPos() - y: clampYPos() + //x: clampXPos() + //y: clampYPos() + x: chrome.requestedXPosition + y: chrome.requestedYPosition + width: childrenRect.width height: childrenRect.height diff --git a/examples/wayland/multi-output/qml/main.qml b/examples/wayland/multi-output/qml/main.qml index 6b83c39a0..fbde0a730 100644 --- a/examples/wayland/multi-output/qml/main.qml +++ b/examples/wayland/multi-output/qml/main.qml @@ -62,11 +62,11 @@ WaylandCompositor { function addScreen() { var screen = screenComponent.createObject(0, { "compositor" : compositor } ); - var output = compositor.addOutput(screen); + var output = compositor.primaryOutputSpace.addOutputWindow(screen); output.automaticFrameCallbacks = true; } onSurfaceCreated: { - var chrome = chromeComponent.createObject(surface.outputWindow.surfacesArea, { "surface" : surface } ); + var chrome = chromeComponent.createObject(surface.primaryOutput.window.surfacesArea, { "surface" : surface } ); } } diff --git a/examples/wayland/pure-qml/qml/main.qml b/examples/wayland/pure-qml/qml/main.qml index 391f683e3..abd0d2981 100644 --- a/examples/wayland/pure-qml/qml/main.qml +++ b/examples/wayland/pure-qml/qml/main.qml @@ -62,7 +62,7 @@ WaylandCompositor { function addScreen() { var screen = screenComponent.createObject(0, { "compositor" : compositor } ); - var output = compositor.primaryOutputSpace.addOutputWindow(screen); + var output = compositor.primaryOutputSpace.addOutputWindow(screen, "", ""); output.automaticFrameCallbacks = true; } diff --git a/examples/wayland/qml-compositor/main.cpp b/examples/wayland/qml-compositor/main.cpp index 4cd1e791d..49a6e1f1d 100644 --- a/examples/wayland/qml-compositor/main.cpp +++ b/examples/wayland/qml-compositor/main.cpp @@ -66,14 +66,13 @@ public: : m_fullscreenSurface(0) , m_output(0) { - m_compositor.setExtensionFlags(QWaylandCompositor::DefaultExtensions | QWaylandCompositor::SubSurfaceExtension); + m_compositor.setExtensionFlags(QWaylandCompositor::DefaultExtensions | QWaylandCompositor::SubSurfaceExtension | QWaylandCompositor::DefaultShellExtension); m_compositor.create(); setSource(QUrl("main.qml")); setResizeMode(QQuickView::SizeRootObjectToView); setColor(Qt::black); winId(); - m_compositor.addDefaultShell(); m_output = m_compositor.primaryOutputSpace()->addOutputWindow(this, "", ""); connect(this, SIGNAL(afterRendering()), this, SLOT(sendCallbacks())); diff --git a/examples/wayland/qwindow-compositor/qwindow-compositor.pro b/examples/wayland/qwindow-compositor/qwindow-compositor.pro index 4bab000b5..c630b8c39 100644 --- a/examples/wayland/qwindow-compositor/qwindow-compositor.pro +++ b/examples/wayland/qwindow-compositor/qwindow-compositor.pro @@ -1,4 +1,4 @@ -QT += gui gui-private core-private compositor +QT += gui gui-private core-private compositor compositor-private LIBS += -L ../../lib #include (../../src/qt-compositor/qt-compositor.pri) diff --git a/examples/wayland/qwindow-compositor/qwindowcompositor.cpp b/examples/wayland/qwindow-compositor/qwindowcompositor.cpp index b7c37a431..a4de89696 100644 --- a/examples/wayland/qwindow-compositor/qwindowcompositor.cpp +++ b/examples/wayland/qwindow-compositor/qwindowcompositor.cpp @@ -59,6 +59,9 @@ #include <QtCompositor/qwaylandoutput.h> #include <QtCompositor/qwaylandoutputspace.h> +#include <QtCompositor/private/qwlshellsurface_p.h> +#include <QtCompositor/private/qwlextendedsurface_p.h> + QT_BEGIN_NAMESPACE class SurfaceView : public QWaylandSurfaceView @@ -122,9 +125,11 @@ QWindowCompositor::~QWindowCompositor() void QWindowCompositor::create() { + setExtensionFlags(extensionFlags() | QWaylandCompositor::DefaultShellExtension); + QWaylandCompositor::create(); - primaryOutputSpace()->addOutputWindow(window, "", ""); + primaryOutputSpace()->addOutputWindow(m_window, "", ""); m_renderScheduler.setSingleShot(true); connect(&m_renderScheduler,SIGNAL(timeout()),this,SLOT(render())); @@ -134,8 +139,6 @@ void QWindowCompositor::create() m_window->installEventFilter(this); setRetainedSelectionEnabled(true); - - addDefaultShell(); } QImage QWindowCompositor::makeBackgroundImage(const QString &fileName) @@ -176,9 +179,10 @@ void QWindowCompositor::surfaceDestroyed() void QWindowCompositor::surfaceMapped() { QWaylandSurface *surface = qobject_cast<QWaylandSurface *>(sender()); + QtWayland::ShellSurface *shellSurface = QtWayland::ShellSurface::get(surface); QPoint pos; if (!m_surfaces.contains(surface)) { - if (surface->windowType() != QWaylandSurface::Popup) { + if (!shellSurface || (shellSurface->surfaceType() != QtWayland::ShellSurface::Popup)) { uint px = 0; uint py = 0; if (!QCoreApplication::arguments().contains(QLatin1String("-stickytopleft"))) { @@ -193,7 +197,7 @@ void QWindowCompositor::surfaceMapped() m_surfaces.removeOne(surface); } - if (surface->windowType() == QWaylandSurface::Popup) { + if (shellSurface && shellSurface->surfaceType() == QtWayland::ShellSurface::Popup) { QWaylandSurfaceView *view = surface->views().first(); view->setRequestedPosition(surface->transientParent()->views().first()->pos() + surface->transientOffset()); } @@ -249,7 +253,9 @@ void QWindowCompositor::onSurfaceCreated(QWaylandSurface *surface) void QWindowCompositor::sendExpose() { QWaylandSurface *surface = qobject_cast<QWaylandSurface *>(sender()); - surface->sendOnScreenVisibilityChange(true); + QtWayland::ExtendedSurface *extendedSurface = QtWayland::ExtendedSurface::get(surface); + if (extendedSurface) + extendedSurface->sendOnScreenVisibilityChange(true); } void QWindowCompositor::updateCursor(bool hasBuffer) diff --git a/examples/wayland/server-buffer/compositor/main.cpp b/examples/wayland/server-buffer/compositor/main.cpp index b34db1630..22bce42e8 100644 --- a/examples/wayland/server-buffer/compositor/main.cpp +++ b/examples/wayland/server-buffer/compositor/main.cpp @@ -79,13 +79,14 @@ public: , m_server_buffer_8_bit(0) , m_server_buffer_item_8_bit(0) { + setExtensionFlags(extensionFlags() | QWaylandCompositor::DefaultShellExtension); + create(); m_view.setSource(QUrl("qrc:/qml/main.qml")); m_view.setResizeMode(QQuickView::SizeRootObjectToView); m_view.setColor(Qt::black); m_view.create(); m_output = primaryOutputSpace()->addOutputWindow(&m_view, "", ""); - addDefaultShell(); connect(&m_view, &QQuickView::afterRendering, this, &QmlCompositor::sendCallbacks); |