diff --git a/src/wayland/surface_interface.cpp b/src/wayland/surface_interface.cpp index 25516ddc48..d55cc3025f 100644 --- a/src/wayland/surface_interface.cpp +++ b/src/wayland/surface_interface.cpp @@ -173,11 +173,15 @@ void SurfaceInterface::frameRendered(quint32 msec) { Q_D(); // notify all callbacks + const bool needsFlush = !d->current.callbacks.isEmpty(); while (!d->current.callbacks.isEmpty()) { wl_resource *r = d->current.callbacks.takeFirst(); wl_callback_send_done(r, msec); wl_resource_destroy(r); } + if (needsFlush) { + client()->flush(); + } } void SurfaceInterface::Private::destroy()