diff --git a/src/modules/dock/entry.cpp b/src/modules/dock/entry.cpp index 833f36f..bdc2272 100644 --- a/src/modules/dock/entry.cpp +++ b/src/modules/dock/entry.cpp @@ -614,8 +614,9 @@ void Entry::newInstance(uint32_t timestamp) // 检查应用窗口分离、合并状态 void Entry::check() { - for (auto iter = m_windowInfoMap.begin(); iter != m_windowInfoMap.end(); iter++) { - m_dock->attachOrDetachWindow(iter.value()); + QList windows = m_windowInfoMap.values(); + for (WindowInfoBase *window : windows) { + m_dock->attachOrDetachWindow(window); } } @@ -623,12 +624,13 @@ void Entry::check() void Entry::forceQuit() { QMap> pidWinInfoMap; - for (auto iter = m_windowInfoMap.begin(); iter != m_windowInfoMap.end(); iter++) { - int pid = iter.value()->getPid(); + QList windows = m_windowInfoMap.values(); + for (WindowInfoBase *window : windows) { + int pid = window->getPid(); if (pid != 0) { - pidWinInfoMap[pid].push_back(iter.value()); + pidWinInfoMap[pid].push_back(window); } else { - iter.value()->killClient(); + window->killClient(); } } @@ -648,11 +650,7 @@ void Entry::forceQuit() void Entry::presentWindows() { - QList windows; - for (auto iter = m_windowInfoMap.begin(); iter != m_windowInfoMap.end(); iter++) { - windows.push_back(iter.key()); - } - + QList windows = m_windowInfoMap.keys(); m_dock->presentWindows(windows); }