From 1c25c7101dc0e11541a410abe8875ac13c190965 Mon Sep 17 00:00:00 2001 From: Vlad Zahorodnii Date: Wed, 20 Jul 2022 11:28:56 +0300 Subject: [PATCH] Simplify Workspace::clientArea() We don't need to look up unrelated areas, for example looking up the screen area when we are after the work area. --- src/workspace.cpp | 27 +++++++-------------------- 1 file changed, 7 insertions(+), 20 deletions(-) diff --git a/src/workspace.cpp b/src/workspace.cpp index 985c58e069..125e8541b9 100644 --- a/src/workspace.cpp +++ b/src/workspace.cpp @@ -2197,35 +2197,22 @@ void Workspace::updateClientArea() */ QRectF Workspace::clientArea(clientAreaOption opt, const Output *output, const VirtualDesktop *desktop) const { - QRectF workArea; - QRectF screenArea; - - if (auto desktopIt = m_screenAreas.constFind(desktop); desktopIt != m_screenAreas.constEnd()) { - if (auto outputIt = desktopIt->constFind(output); outputIt != desktopIt->constEnd()) { - screenArea = *outputIt; - } - } - - if (screenArea.isNull()) { // screens may be missing during KWin initialization or screen config changes - screenArea = output->geometry(); - } - - workArea = m_workAreas.value(desktop); - if (workArea.isNull()) { - workArea = m_geometry; - } - switch (opt) { case MaximizeArea: case PlacementArea: - return screenArea; + if (auto desktopIt = m_screenAreas.constFind(desktop); desktopIt != m_screenAreas.constEnd()) { + if (auto outputIt = desktopIt->constFind(output); outputIt != desktopIt->constEnd()) { + return *outputIt; + } + } + return output->geometry(); case MaximizeFullArea: case FullScreenArea: case MovementArea: case ScreenArea: return output->geometry(); case WorkArea: - return workArea; + return m_workAreas.value(desktop, m_geometry); case FullArea: return m_geometry; default: