diff --git a/src/server/surface_interface.cpp b/src/server/surface_interface.cpp --- a/src/server/surface_interface.cpp +++ b/src/server/surface_interface.cpp @@ -440,7 +440,7 @@ emit q->transformChanged(target->transform); } if (bufferChanged && emitChanged) { - if (!target->damage.isEmpty()) { + if (target->buffer && !target->damage.isEmpty()) { const QRegion windowRegion = QRegion(0, 0, q->size().width(), q->size().height()); if (!windowRegion.isEmpty()) { target->damage = windowRegion.intersected(target->damage); @@ -525,10 +525,6 @@ void SurfaceInterface::Private::damage(const QRect &rect) { - if (!pending.bufferIsSet || (pending.bufferIsSet && !pending.buffer)) { - // TODO: should we send an error? - return; - } pending.damage = pending.damage.united(rect); }