summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/compositor/compositor_api/qwaylandsurface.h3
-rw-r--r--src/extensions/surface-extension.xml1
-rw-r--r--src/plugins/platforms/wayland_common/qwaylandextendedsurface.cpp3
3 files changed, 5 insertions, 2 deletions
diff --git a/src/compositor/compositor_api/qwaylandsurface.h b/src/compositor/compositor_api/qwaylandsurface.h
index 308e8d546..7de4b709d 100644
--- a/src/compositor/compositor_api/qwaylandsurface.h
+++ b/src/compositor/compositor_api/qwaylandsurface.h
@@ -88,7 +88,8 @@ class Q_COMPOSITOR_EXPORT QWaylandSurface : public QObject
public:
enum WindowFlag {
OverridesSystemGestures = 0x0001,
- StaysOnTop = 0x0002
+ StaysOnTop = 0x0002,
+ BypassWindowManager = 0x0004
};
Q_DECLARE_FLAGS(WindowFlags, WindowFlag)
diff --git a/src/extensions/surface-extension.xml b/src/extensions/surface-extension.xml
index a2c9688c0..31f286200 100644
--- a/src/extensions/surface-extension.xml
+++ b/src/extensions/surface-extension.xml
@@ -78,6 +78,7 @@
<enum name="windowflag">
<entry name="OverridesSystemGestures" value="1"/>
<entry name="StaysOnTop" value="2"/>
+ <entry name="BypassWindowManager" value="4"/>
</enum>
<request name="set_window_flags">
diff --git a/src/plugins/platforms/wayland_common/qwaylandextendedsurface.cpp b/src/plugins/platforms/wayland_common/qwaylandextendedsurface.cpp
index 58eb0a833..bfd2a1d0b 100644
--- a/src/plugins/platforms/wayland_common/qwaylandextendedsurface.cpp
+++ b/src/plugins/platforms/wayland_common/qwaylandextendedsurface.cpp
@@ -142,10 +142,11 @@ Qt::WindowFlags QWaylandExtendedSurface::setWindowFlags(Qt::WindowFlags flags)
if (flags & Qt::WindowStaysOnTopHint) wlFlags |= QT_EXTENDED_SURFACE_WINDOWFLAG_STAYSONTOP;
if (flags & Qt::WindowOverridesSystemGestures) wlFlags |= QT_EXTENDED_SURFACE_WINDOWFLAG_OVERRIDESSYSTEMGESTURES;
+ if (flags & Qt::BypassWindowManagerHint) wlFlags |= QT_EXTENDED_SURFACE_WINDOWFLAG_BYPASSWINDOWMANAGER;
set_window_flags(wlFlags);
- return flags & (Qt::WindowStaysOnTopHint | Qt::WindowOverridesSystemGestures);
+ return flags & (Qt::WindowStaysOnTopHint | Qt::WindowOverridesSystemGestures | Qt::BypassWindowManagerHint);
}
QT_END_NAMESPACE