summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/compositor/compositor_api/qwaylandsurface.h3
-rw-r--r--src/compositor/wayland_wrapper/qwlextendedsurface.cpp10
-rw-r--r--src/compositor/wayland_wrapper/qwlextendedsurface_p.h2
-rw-r--r--src/extensions/surface-extension.xml6
-rw-r--r--src/plugins/platforms/wayland_common/qwaylandwindow.cpp14
-rw-r--r--src/plugins/platforms/wayland_common/qwaylandwindow.h3
6 files changed, 37 insertions, 1 deletions
diff --git a/src/compositor/compositor_api/qwaylandsurface.h b/src/compositor/compositor_api/qwaylandsurface.h
index 01479273b..5349f89f6 100644
--- a/src/compositor/compositor_api/qwaylandsurface.h
+++ b/src/compositor/compositor_api/qwaylandsurface.h
@@ -173,7 +173,8 @@ signals:
void extendedSurfaceReady();
void classNameChanged();
void titleChanged();
-
+ void raiseRequested();
+ void lowerRequested();
};
QT_END_NAMESPACE
diff --git a/src/compositor/wayland_wrapper/qwlextendedsurface.cpp b/src/compositor/wayland_wrapper/qwlextendedsurface.cpp
index 3ab886489..0f6ce8caa 100644
--- a/src/compositor/wayland_wrapper/qwlextendedsurface.cpp
+++ b/src/compositor/wayland_wrapper/qwlextendedsurface.cpp
@@ -161,6 +161,16 @@ void ExtendedSurface::extended_surface_destroy_resource(Resource *)
delete this;
}
+void ExtendedSurface::extended_surface_raise(Resource *)
+{
+ emit m_surface->waylandSurface()->raiseRequested();
+}
+
+void ExtendedSurface::extended_surface_lower(Resource *)
+{
+ emit m_surface->waylandSurface()->lowerRequested();
+}
+
}
QT_END_NAMESPACE
diff --git a/src/compositor/wayland_wrapper/qwlextendedsurface_p.h b/src/compositor/wayland_wrapper/qwlextendedsurface_p.h
index a28ed1b59..4ce34ced6 100644
--- a/src/compositor/wayland_wrapper/qwlextendedsurface_p.h
+++ b/src/compositor/wayland_wrapper/qwlextendedsurface_p.h
@@ -114,6 +114,8 @@ private:
int32_t flags) Q_DECL_OVERRIDE;
void extended_surface_destroy_resource(Resource *) Q_DECL_OVERRIDE;
+ void extended_surface_raise(Resource *) Q_DECL_OVERRIDE;
+ void extended_surface_lower(Resource *) Q_DECL_OVERRIDE;
};
}
diff --git a/src/extensions/surface-extension.xml b/src/extensions/surface-extension.xml
index ccc65795b..a2c9688c0 100644
--- a/src/extensions/surface-extension.xml
+++ b/src/extensions/surface-extension.xml
@@ -84,5 +84,11 @@
<arg name="flags" type="int"/>
</request>
+ <request name="raise">
+ </request>
+
+ <request name="lower">
+ </request>
+
</interface>
</protocol>
diff --git a/src/plugins/platforms/wayland_common/qwaylandwindow.cpp b/src/plugins/platforms/wayland_common/qwaylandwindow.cpp
index f00198025..93357bd58 100644
--- a/src/plugins/platforms/wayland_common/qwaylandwindow.cpp
+++ b/src/plugins/platforms/wayland_common/qwaylandwindow.cpp
@@ -196,6 +196,20 @@ void QWaylandWindow::setVisible(bool visible)
}
+void QWaylandWindow::raise()
+{
+ if (mExtendedWindow)
+ mExtendedWindow->raise();
+}
+
+
+void QWaylandWindow::lower()
+{
+ if (mExtendedWindow)
+ mExtendedWindow->lower();
+}
+
+
bool QWaylandWindow::isExposed() const
{
if (!window()->isVisible())
diff --git a/src/plugins/platforms/wayland_common/qwaylandwindow.h b/src/plugins/platforms/wayland_common/qwaylandwindow.h
index d318c1d5d..b62155c45 100644
--- a/src/plugins/platforms/wayland_common/qwaylandwindow.h
+++ b/src/plugins/platforms/wayland_common/qwaylandwindow.h
@@ -133,6 +133,9 @@ public:
void setWindowState(Qt::WindowState state);
void setWindowFlags(Qt::WindowFlags flags);
+ void raise() Q_DECL_OVERRIDE;
+ void lower() Q_DECL_OVERRIDE;
+
bool isExposed() const;
QWaylandDecoration *decoration() const;