diff --git a/shell/panelview.cpp b/shell/panelview.cpp --- a/shell/panelview.cpp +++ b/shell/panelview.cpp @@ -48,6 +48,7 @@ #include #include #include +#include #endif static const int MINSIZE = 10; @@ -749,6 +750,9 @@ themeChanged(); KWindowSystem::setOnAllDesktops(winId(), true); KWindowSystem::setType(winId(), NET::Dock); +#if HAVE_X11 + setProperty("_q_xcb_wm_window_type", QXcbWindowFunctions::Dock); +#endif if (m_shellSurface) { m_shellSurface->setRole(KWayland::Client::PlasmaShellSurface::Role::Panel); m_shellSurface->setSkipTaskbar(true); @@ -1183,10 +1187,13 @@ { if (status == Plasma::Types::NeedsAttentionStatus) { showTemporarily(); + setFlags(flags() | Qt::WindowDoesNotAcceptFocus); } else if (status == Plasma::Types::AcceptingInputStatus) { + setFlags(flags() & (!Qt::WindowDoesNotAcceptFocus)); KWindowSystem::forceActiveWindow(winId()); } else { restoreAutoHide(); + setFlags(flags() | Qt::WindowDoesNotAcceptFocus); } }