diff --git a/pcsx2-qt/DisplayWidget.cpp b/pcsx2-qt/DisplayWidget.cpp index a966f6c55e..5064d1fe4b 100644 --- a/pcsx2-qt/DisplayWidget.cpp +++ b/pcsx2-qt/DisplayWidget.cpp @@ -479,8 +479,15 @@ bool DisplaySurface::eventFilter(QObject* object, QEvent* event) // macOS: When we (the display window) get focus from another window with a toolbar we update to the MainWindow toolbar. // This is because we are a different native window from our MainWindow. So, whenever we get focus, focus our MainWindow. // That way macOS will show the MainWindow toolbar when you click from the debugger / log window to the game. - if (auto* w = qobject_cast(object)) + + // Don't try to steal focus when we're showing a modal dialog + // We end up ping ponging focus in a feedback loop + if (QApplication::activeModalWidget() != nullptr) + return false; + + if (const auto* w = qobject_cast(object)) w->window()->activateWindow(); + return false; default: return false;