diff --git a/scene_opengl.cpp b/scene_opengl.cpp index c8ce5db210..5e133820c5 100644 --- a/scene_opengl.cpp +++ b/scene_opengl.cpp @@ -2524,7 +2524,8 @@ void SceneOpenGLDecorationRenderer::render() if (scheduled.isEmpty()) { return; } - if (areImageSizesDirty()) { + const bool dirty = areImageSizesDirty(); + if (dirty) { resizeTexture(); resetImageSizesDirty(); } @@ -2537,7 +2538,7 @@ void SceneOpenGLDecorationRenderer::render() QRect left, top, right, bottom; client()->client()->layoutDecorationRects(left, top, right, bottom); - const QRect geometry = scheduled.boundingRect(); + const QRect geometry = dirty ? QRect(QPoint(0, 0), client()->client()->geometry().size()) : scheduled.boundingRect(); auto renderPart = [this](const QRect &geo, const QRect &partRect, const QPoint &offset, bool rotated = false) { if (geo.isNull()) {