diff options
author | Johan Klokkhammer Helsing <johan.helsing@theqtcompany.com> | 2016-02-10 12:51:26 +0100 |
---|---|---|
committer | Johan Helsing <johan.helsing@theqtcompany.com> | 2016-02-12 10:41:00 +0000 |
commit | bebe9beff3e9874498474cec32634cf281ddc453 (patch) | |
tree | e967dc71377e4a6f2cbea45dfb2acbde8d1d4b1f | |
parent | 46f590f0ddaa03d73c0307ca98a303bbe88dcb19 (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.cpp | 3 |
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); } |