diff --git a/src/pipewire/impl-node.c b/src/pipewire/impl-node.c index 85b2b055a..dd49d5c2f 100644 --- a/src/pipewire/impl-node.c +++ b/src/pipewire/impl-node.c @@ -1960,9 +1960,11 @@ int pw_impl_node_set_state(struct pw_impl_node *node, enum pw_node_state state) } if (old != state) { - impl->pending = state; - if (impl->pending_id != SPA_ID_INVALID) + if (impl->pending_id != SPA_ID_INVALID) { pw_work_queue_cancel(impl->work, node, impl->pending_id); + node->info.state = impl->pending; + } + impl->pending = state; impl->pending_id = pw_work_queue_add(impl->work, node, res, on_state_complete, SPA_INT_TO_PTR(state)); }