diff --git a/xdgshellclient.cpp b/xdgshellclient.cpp --- a/xdgshellclient.cpp +++ b/xdgshellclient.cpp @@ -1011,11 +1011,14 @@ } if (m_plasmaShellSurface) { if (m_plasmaShellSurface->role() == PlasmaShellSurfaceInterface::Role::OnScreenDisplay || - m_plasmaShellSurface->role() == PlasmaShellSurfaceInterface::Role::ToolTip || - m_plasmaShellSurface->role() == PlasmaShellSurfaceInterface::Role::Notification || - m_plasmaShellSurface->role() == PlasmaShellSurfaceInterface::Role::CriticalNotification) { + m_plasmaShellSurface->role() == PlasmaShellSurfaceInterface::Role::ToolTip) { return false; } + + if (m_plasmaShellSurface->role() == PlasmaShellSurfaceInterface::Role::Notification || + m_plasmaShellSurface->role() == PlasmaShellSurfaceInterface::Role::CriticalNotification) { + return m_plasmaShellSurface->panelTakesFocus(); + } } if (m_closing) { // a closing window does not accept focus