diff --git a/shell/panelview.cpp b/shell/panelview.cpp index b1967359f..283133913 100644 --- a/shell/panelview.cpp +++ b/shell/panelview.cpp @@ -36,6 +36,7 @@ #include #if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) #include +#include #else #include #include @@ -842,7 +843,12 @@ void PanelView::integrateScreen() KWindowSystem::setOnAllDesktops(winId(), true); KWindowSystem::setType(winId(), NET::Dock); #if HAVE_X11 +#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) QXcbWindowFunctions::setWmWindowType(this, QXcbWindowFunctions::Dock); +#else + // QXcbWindow isn't installed and thus inaccessible to us, but it does read this magic property... + setProperty("_q_xcb_wm_window_type", QNativeInterface::Private::QXcbWindow::Dock); +#endif #endif if (m_shellSurface) { m_shellSurface->setRole(KWayland::Client::PlasmaShellSurface::Role::Panel);