From bebe9beff3e9874498474cec32634cf281ddc453 Mon Sep 17 00:00:00 2001 From: Johan Klokkhammer Helsing Date: Wed, 10 Feb 2016 12:51:26 +0100 Subject: Fix freeze when using BypassWindowManagerHint Shell surfaces are now created for windows with BypassWindowManager set, unless the environment variable QT_WAYLAND_USE_BYPASSWINDOWMANAGERHINT is also set. This means that in case you need a window to not create a wayland shell_surface (perhaps because you do not want to use wl_shell or xdg_shell), you can set the environment variable and get the same behavior as before. Meaning the surfaces of windows with the flag set will not be assigned a role. Task-number: QTBUG-49272 Change-Id: Idf969540497d6b4e54395b97472d99d2e068be93 Reviewed-by: Giulio Camuffo Reviewed-by: Pier Luigi Fiorini --- src/client/qwaylandwindow.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/client/qwaylandwindow.cpp b/src/client/qwaylandwindow.cpp index fe0d6bb95..fa4e20f94 100644 --- a/src/client/qwaylandwindow.cpp +++ b/src/client/qwaylandwindow.cpp @@ -122,7 +122,8 @@ void QWaylandWindow::initWindow() if (::wl_subsurface *ss = mDisplay->createSubSurface(this, p)) { mSubSurfaceWindow = new QWaylandSubSurface(this, p, ss); } - } else if (!(window()->flags() & Qt::BypassWindowManagerHint)) { + } else if (!(qEnvironmentVariableIsSet("QT_WAYLAND_USE_BYPASSWINDOWMANAGERHINT") && + window()->flags() & Qt::BypassWindowManagerHint)) { mShellSurface = mDisplay->createShellSurface(this); } -- cgit v1.2.3