diff --git a/src/inputpanelv1client.cpp b/src/inputpanelv1client.cpp index f9ddc937f194c28e6e3c07433234a0572f4b4c08..0eec81fe0bcd9269e5e00f9ba81caa95a90f804e 100644 --- a/src/inputpanelv1client.cpp +++ b/src/inputpanelv1client.cpp @@ -69,9 +69,9 @@ void KWin::InputPanelV1Client::reposition() return; } - const auto outputGeometry = m_output->geometry(); - QRect geo(outputGeometry.topLeft(), panelSize); - geo.translate((outputGeometry.width() - panelSize.width())/2, outputGeometry.height() - panelSize.height()); + const QRect availableArea = workspace()->clientArea(MaximizeArea, m_output, desktop()); + QRect geo(availableArea.topLeft(), panelSize); + geo.translate((availableArea.width() - panelSize.width())/2, availableArea.height() - panelSize.height()); updateGeometry(geo); } } break; diff --git a/src/workspace.cpp b/src/workspace.cpp index 26237f568823b7918902573b751e85a860d8ab4a..aa544e68589c3a41fcff92ac81dca3d0da9408bb 100644 --- a/src/workspace.cpp +++ b/src/workspace.cpp @@ -2299,6 +2299,10 @@ QRect Workspace::clientArea(clientAreaOption opt, int screen, int desktop) const abort(); } +QRect Workspace::clientArea(clientAreaOption opt, const AbstractOutput *output, int desktop) const +{ + return clientArea(opt, kwinApp()->platform()->enabledOutputs().indexOf(output), desktop); +} QRect Workspace::clientArea(clientAreaOption opt, const QPoint& p, int desktop) const { diff --git a/src/workspace.h b/src/workspace.h index ffd06a3e3c8249935d620a064b38c077115df948..e46fd91d9d4358e60464032391a6a2e88c7aa81b 100644 --- a/src/workspace.h +++ b/src/workspace.h @@ -41,6 +41,7 @@ class Window; } class AbstractClient; +class AbstractOutput; class ColorMapper; class Compositor; class Deleted; @@ -154,6 +155,7 @@ public: QRect clientArea(clientAreaOption, const QPoint& p, int desktop) const; QRect clientArea(clientAreaOption, const AbstractClient* c) const; QRect clientArea(clientAreaOption, int screen, int desktop) const; + QRect clientArea(clientAreaOption, const AbstractOutput *output, int desktop) const; QRegion restrictedMoveArea(int desktop, StrutAreas areas = StrutAreaAll) const;