summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--clients/simple-dmabuf-feedback.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/clients/simple-dmabuf-feedback.c b/clients/simple-dmabuf-feedback.c
index 0f058fe5..e6832dab 100644
--- a/clients/simple-dmabuf-feedback.c
+++ b/clients/simple-dmabuf-feedback.c
@@ -682,8 +682,10 @@ redraw(void *data, struct wl_callback *callback, uint32_t time)
window->callback = wl_surface_frame(window->surface);
wl_callback_add_listener(window->callback, &frame_listener, window);
- if (window->presentation_feedback)
+ if (window->presentation_feedback) {
wp_presentation_feedback_destroy(window->presentation_feedback);
+ window->presentation_feedback = NULL;
+ }
if (window->display->presentation) {
window->presentation_feedback =
wp_presentation_feedback(window->display->presentation,
@@ -735,12 +737,15 @@ static void presentation_feedback_handle_presented(void *data,
window->presented_zero_copy = zero_copy;
wp_presentation_feedback_destroy(feedback);
+ window->presentation_feedback = NULL;
}
static void presentation_feedback_handle_discarded(void *data,
struct wp_presentation_feedback *feedback)
{
+ struct window *window = data;
wp_presentation_feedback_destroy(feedback);
+ window->presentation_feedback = NULL;
}
static const struct wp_presentation_feedback_listener presentation_feedback_listener = {