diff --git a/kcm/src/widget.cpp b/kcm/src/widget.cpp --- a/kcm/src/widget.cpp +++ b/kcm/src/widget.cpp @@ -465,15 +465,22 @@ qWarning() << "Failed to obtain root item"; continue; } - QSize realSize; + + QSize realSize, scaledSize; if (output->isHorizontal()) { realSize = mode->size(); } else { realSize = QSize(mode->size().height(), mode->size().width()); } + if (config->supportedFeatures() & KScreen::Config::Feature::PerOutputScaling) { + scaledSize = realSize / output->scale(); + } else { + scaledSize = realSize / devicePixelRatioF(); + } + rootObj->setProperty("outputName", Utils::outputName(output)); rootObj->setProperty("modeName", Utils::sizeToString(realSize)); - view->setProperty("screenSize", QRect(output->pos(), realSize)); + view->setProperty("screenSize", QRect(output->pos(), scaledSize)); mOutputIdentifiers << view; }