diff --git a/input.cpp b/input.cpp index 14828828aa..92724d7b75 100644 --- a/input.cpp +++ b/input.cpp @@ -547,7 +547,8 @@ void InputRedirection::updatePointerInternalWindow() if (waylandServer()) { bool found = false; const auto &internalClients = waylandServer()->internalClients(); - if (!internalClients.isEmpty()) { + const bool change = m_pointerInternalWindow.isNull() || !(m_pointerInternalWindow->flags().testFlag(Qt::Popup) && m_pointerInternalWindow->isVisible()); + if (!internalClients.isEmpty() && change) { auto it = internalClients.end(); do { it--;