diff options
Diffstat (limited to 'src/client')
-rw-r--r-- | src/client/qwaylandbuffer_p.h | 2 | ||||
-rw-r--r-- | src/client/qwaylandwindow.cpp | 6 |
2 files changed, 6 insertions, 2 deletions
diff --git a/src/client/qwaylandbuffer_p.h b/src/client/qwaylandbuffer_p.h index 381debc81..3798ef3eb 100644 --- a/src/client/qwaylandbuffer_p.h +++ b/src/client/qwaylandbuffer_p.h @@ -37,7 +37,7 @@ public: virtual QSize size() const = 0; virtual int scale() const { return 1; } - void setBusy() { mBusy = true; } + void setBusy(bool busy) { mBusy = busy; } bool busy() const { return mBusy; } void setCommitted() { mCommitted = true; } diff --git a/src/client/qwaylandwindow.cpp b/src/client/qwaylandwindow.cpp index d7bb6c652..c5316542e 100644 --- a/src/client/qwaylandwindow.cpp +++ b/src/client/qwaylandwindow.cpp @@ -681,7 +681,7 @@ void QWaylandWindow::attach(QWaylandBuffer *buffer, int x, int y) if (buffer) { Q_ASSERT(!buffer->committed()); handleUpdate(); - buffer->setBusy(); + buffer->setBusy(true); mSurface->attach(buffer->buffer(), x, y); } else { @@ -713,7 +713,11 @@ void QWaylandWindow::safeCommit(QWaylandBuffer *buffer, const QRegion &damage) if (isExposed()) { commit(buffer, damage); } else { + if (mQueuedBuffer) { + mQueuedBuffer->setBusy(false); + } mQueuedBuffer = buffer; + mQueuedBuffer->setBusy(true); mQueuedBufferDamage = damage; } } |