wayland: Remove surface() check in Window::setupWindowManagement()

At the moment, an Xwayland window can be marked ready for painting even
though the corresponding wl_surface is missing. If that happens,
Window::setupWindowManagement() will fail to create a plasma window and
the task manager won't display the corresponding item.

As a short-term solution, remove the surface() check. It's not really
needed after all. For example, if it takes too long to start an app or
it doesn't show up at all, we still want to see a task manager item.

In long-term, kwin probably needs to take into account both xsync and
whether wl_surface has been associated, which is more complex.

BUG: 444325
This commit is contained in:
Vlad Zahorodnii 2022-08-09 14:08:26 +03:00
parent e24ee60bb2
commit 3934d1d0f2

View file

@ -2158,10 +2158,7 @@ void Window::setupWindowManagementInterface()
// already setup
return;
}
if (!waylandServer() || !surface()) {
return;
}
if (!waylandServer()->windowManagement()) {
if (!waylandServer() || !waylandServer()->windowManagement()) {
return;
}
using namespace KWaylandServer;