diff --git a/src/plugins/scenes/opengl/scene_opengl.cpp b/src/plugins/scenes/opengl/scene_opengl.cpp index 600002e88e..e6a82bd185 100644 --- a/src/plugins/scenes/opengl/scene_opengl.cpp +++ b/src/plugins/scenes/opengl/scene_opengl.cpp @@ -2588,7 +2588,9 @@ void SceneOpenGLDecorationRenderer::render(const QRegion ®ion) renderToPainter(&painter, geo); painter.end(); - clamp(image, QRect(viewport.topLeft(), viewport.size() * devicePixelRatio)); + const QRect viewportScaled(viewport.topLeft() * devicePixelRatio, viewport.size() * devicePixelRatio); + const bool isIntegerScaling = qFuzzyCompare(devicePixelRatio, std::ceil(devicePixelRatio)); + clamp(image, isIntegerScaling ? viewportScaled : viewportScaled.marginsRemoved({1, 1, 1, 1})); if (rotated) { // TODO: get this done directly when rendering to the image