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>
This commit is contained in:
parent
4c0a1bc3b0
commit
c70987cd65
@ -122,7 +122,8 @@ void QWaylandWindow::initWindow()
|
|||||||
if (::wl_subsurface *ss = mDisplay->createSubSurface(this, p)) {
|
if (::wl_subsurface *ss = mDisplay->createSubSurface(this, p)) {
|
||||||
mSubSurfaceWindow = new QWaylandSubSurface(this, p, ss);
|
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);
|
mShellSurface = mDisplay->createShellSurface(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user