diff --git a/src/compositor/compositor_api/qwaylandview.cpp b/src/compositor/compositor_api/qwaylandview.cpp
index 793dcf202cb2998c0eb4f296a411c3cb57d0b5b5..73cb49beaab91e855d434fbec2a5f705ead4efd5 100644
--- a/src/compositor/compositor_api/qwaylandview.cpp
+++ b/src/compositor/compositor_api/qwaylandview.cpp
@@ -307,7 +307,10 @@ bool QWaylandView::isBufferLocked() const
 void QWaylandView::setBufferLock(bool locked)
 {
     Q_D(QWaylandView);
+    if (d->bufferLock == locked)
+        return;
     d->bufferLock = locked;
+    emit bufferLockChanged();
 }
 
 /*!