summaryrefslogtreecommitdiffstats
path: root/examples
diff options
context:
space:
mode:
authorJørgen Lind <jorgen.lind@theqtcompany.com>2015-07-30 14:53:35 +0200
committerJørgen Lind <jorgen.lind@theqtcompany.com>2015-08-28 13:09:42 +0200
commitce58545b220a49354533a27ef79cdbc8d50186cd (patch)
tree660232f61bc971d68c29b37acfa9c709f617c697 /examples
parent5edaac978e01ead8648aad91f0d050748f7a8915 (diff)
Rework how we manage extensions
Diffstat (limited to 'examples')
-rw-r--r--examples/wayland/multi-output/qml/Chrome.qml7
-rw-r--r--examples/wayland/multi-output/qml/main.qml4
-rw-r--r--examples/wayland/pure-qml/qml/main.qml2
-rw-r--r--examples/wayland/qml-compositor/main.cpp3
-rw-r--r--examples/wayland/qwindow-compositor/qwindow-compositor.pro2
-rw-r--r--examples/wayland/qwindow-compositor/qwindowcompositor.cpp18
-rw-r--r--examples/wayland/server-buffer/compositor/main.cpp3
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);