diff --git a/src/wayland/meta-wayland-surface.c b/src/wayland/meta-wayland-surface.c index 68fdb82f3..10a9555a2 100644 --- a/src/wayland/meta-wayland-surface.c +++ b/src/wayland/meta-wayland-surface.c @@ -296,10 +296,11 @@ move_pending_state (MetaWaylandPendingState *from, if (from->buffer) wl_list_remove (&from->buffer_destroy_listener.link); - wl_list_insert_list (&to->frame_callback_list, &from->frame_callback_list); - *to = *from; + wl_list_init (&to->frame_callback_list); + wl_list_insert_list (&to->frame_callback_list, &from->frame_callback_list); + if (to->buffer) wl_signal_add (&to->buffer->destroy_signal, &to->buffer_destroy_listener);