summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohan Klokkhammer Helsing <johan.helsing@theqtcompany.com>2016-02-10 12:51:26 +0100
committerJohan Helsing <johan.helsing@theqtcompany.com>2016-02-12 10:41:00 +0000
commitbebe9beff3e9874498474cec32634cf281ddc453 (patch)
treee967dc71377e4a6f2cbea45dfb2acbde8d1d4b1f
parent46f590f0ddaa03d73c0307ca98a303bbe88dcb19 (diff)
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 <giuliocamuffo@gmail.com> Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@gmail.com>
-rw-r--r--src/client/qwaylandwindow.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/client/qwaylandwindow.cpp b/src/client/qwaylandwindow.cpp
index fe0d6bb9..fa4e20f9 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);
}