diff options
-rw-r--r-- | src/compositor/compositor_api/qwaylandsurface.h | 3 | ||||
-rw-r--r-- | src/extensions/surface-extension.xml | 1 | ||||
-rw-r--r-- | src/plugins/platforms/wayland_common/qwaylandextendedsurface.cpp | 3 |
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 |