diff --git a/present/present_screen.c b/present/present_screen.c index c435f55f4..bfd30b8ba 100644 --- a/present/present_screen.c +++ b/present/present_screen.c @@ -115,9 +115,9 @@ present_wnmd_clear_window_flip(WindowPtr window) present_window_priv_ptr window_priv = present_window_priv(window); present_vblank_ptr vblank, tmp; - if (window_priv->flip_pending) { - present_wnmd_set_abort_flip(window); - window_priv->flip_pending->window = NULL; + xorg_list_for_each_entry_safe(vblank, tmp, &window_priv->flip_queue, event_queue) { + present_pixmap_idle(vblank->pixmap, vblank->window, vblank->serial, vblank->idle_fence); + present_vblank_destroy(vblank); } xorg_list_for_each_entry_safe(vblank, tmp, &window_priv->idle_queue, event_queue) {