diff --git a/kcm/src/widget.cpp b/kcm/src/widget.cpp --- a/kcm/src/widget.cpp +++ b/kcm/src/widget.cpp @@ -45,6 +45,7 @@ #include #include #include +#include #include "ui_kscreen_widget.h" @@ -446,6 +447,13 @@ const KScreen::ModePtr mode = output->currentMode(); QQuickView *view = new QQuickView(); + const auto screens = QGuiApplication::screens(); + for (QScreen *screen : screens) { + if (output->pos() == screen->geometry().topLeft()) { + view->setScreen(screen); + break; + } + } view->setFlags(Qt::X11BypassWindowManagerHint | Qt::FramelessWindowHint); view->setResizeMode(QQuickView::SizeViewToRootObject); @@ -468,7 +476,8 @@ // no scale adjustment needed on Wayland logicalSize = deviceSize; } else { - logicalSize = deviceSize / devicePixelRatioF(); + const QScreen *screen = view->screen(); + logicalSize = screen ? screen->size() : deviceSize / devicePixelRatioF(); } rootObj->setProperty("outputName", Utils::outputName(output));