diff --git a/src/activation.cpp b/src/activation.cpp index 7bd656b732..d7014af45f 100644 --- a/src/activation.cpp +++ b/src/activation.cpp @@ -493,7 +493,7 @@ bool Workspace::activateNextWindow(Window *window) Output *output = window ? window->output() : workspace()->activeOutput(); if (!focusCandidate && showingDesktop()) { - focusCandidate = findDesktop(true, desktop, output); // to not break the state + focusCandidate = findDesktop(desktop, output); // to not break the state } if (!focusCandidate && options->isNextFocusPrefersMouse()) { @@ -520,7 +520,7 @@ bool Workspace::activateNextWindow(Window *window) } if (focusCandidate == nullptr) { // last chance: focus the desktop - focusCandidate = findDesktop(true, desktop, output); + focusCandidate = findDesktop(desktop, output); } if (focusCandidate != nullptr) { @@ -541,7 +541,7 @@ void Workspace::switchToOutput(Output *output) VirtualDesktop *desktop = VirtualDesktopManager::self()->currentDesktop(); Window *get_focus = m_focusChain->getForActivation(desktop, output); if (get_focus == nullptr) { - get_focus = findDesktop(true, desktop, output); + get_focus = findDesktop(desktop, output); } if (get_focus != nullptr && get_focus != mostRecentlyActivatedWindow()) { requestFocus(get_focus); diff --git a/src/layers.cpp b/src/layers.cpp index ce4a9dc664..60a52ad682 100644 --- a/src/layers.cpp +++ b/src/layers.cpp @@ -256,27 +256,16 @@ Window *Workspace::topWindowOnDesktop(VirtualDesktop *desktop, Output *output, b return nullptr; } -Window *Workspace::findDesktop(bool topmost, VirtualDesktop *desktop, Output *output) const +Window *Workspace::findDesktop(VirtualDesktop *desktop, Output *output) const { // TODO Q_ASSERT( block_stacking_updates == 0 ); - if (topmost) { - for (int i = stacking_order.size() - 1; i >= 0; i--) { - auto window = stacking_order.at(i); - if (window->isDeleted()) { - continue; - } - if (window->isClient() && window->isOnDesktop(desktop) && window->isOnOutput(output) && window->isDesktop() && window->isShown()) { - return window; - } + for (int i = stacking_order.size() - 1; i >= 0; i--) { + auto window = stacking_order.at(i); + if (window->isDeleted()) { + continue; } - } else { // bottom-most - for (Window *window : std::as_const(stacking_order)) { - if (window->isDeleted()) { - continue; - } - if (window->isClient() && window->isOnDesktop(desktop) && window->isOnOutput(output) && window->isDesktop() && window->isShown()) { - return window; - } + if (window->isClient() && window->isOnDesktop(desktop) && window->isOnOutput(output) && window->isDesktop() && window->isShown()) { + return window; } } return nullptr; diff --git a/src/workspace.cpp b/src/workspace.cpp index 65ede01eba..cf3906bc1f 100644 --- a/src/workspace.cpp +++ b/src/workspace.cpp @@ -410,7 +410,7 @@ void Workspace::initializeX11() newActiveWindow = topWindowOnDesktop(VirtualDesktopManager::self()->currentDesktop()); } if (newActiveWindow == nullptr) { - newActiveWindow = findDesktop(true, VirtualDesktopManager::self()->currentDesktop(), activeOutput()); + newActiveWindow = findDesktop(VirtualDesktopManager::self()->currentDesktop(), activeOutput()); } } if (newActiveWindow != nullptr) { @@ -730,7 +730,7 @@ void Workspace::addX11Window(X11Window *window) raiseWindow(window); // If there's no active window, make this desktop the active one if (activeWindow() == nullptr && should_get_focus.count() == 0) { - activateWindow(findDesktop(true, VirtualDesktopManager::self()->currentDesktop(), window->output())); + activateWindow(findDesktop(VirtualDesktopManager::self()->currentDesktop(), window->output())); } } window->checkActiveModal(); @@ -995,7 +995,7 @@ void Workspace::activateWindowOnDesktop(VirtualDesktop *desktop) } if (!window) { - window = findDesktop(true, desktop, activeOutput()); + window = findDesktop(desktop, activeOutput()); } if (window != m_activeWindow) { @@ -1111,7 +1111,7 @@ void Workspace::updateCurrentActivity(const QString &new_activity) } if (!window) { - window = findDesktop(true, VirtualDesktopManager::self()->currentDesktop(), activeOutput()); + window = findDesktop(VirtualDesktopManager::self()->currentDesktop(), activeOutput()); } if (window != m_activeWindow) { @@ -1578,7 +1578,7 @@ void Workspace::setShowingDesktop(bool showing, bool animated) } if (showing_desktop) { - Window *desktop = findDesktop(true, VirtualDesktopManager::self()->currentDesktop(), activeOutput()); + Window *desktop = findDesktop(VirtualDesktopManager::self()->currentDesktop(), activeOutput()); if (desktop) { requestFocus(desktop); } diff --git a/src/workspace.h b/src/workspace.h index 878e733c7c..3e46fc2069 100644 --- a/src/workspace.h +++ b/src/workspace.h @@ -310,7 +310,7 @@ public: Window *topWindowOnDesktop(VirtualDesktop *desktop, Output *output = nullptr, bool unconstrained = false, bool only_normal = true) const; - Window *findDesktop(bool topmost, VirtualDesktop *desktop, Output *output) const; + Window *findDesktop(VirtualDesktop *desktop, Output *output) const; void addWindowToDesktop(Window *window, VirtualDesktop *desktop); void removeWindowFromDesktop(Window *window, VirtualDesktop *desktop); void sendWindowToDesktops(Window *window, const QList &desktops, bool dont_activate);