From ad8dd440d2b395167c591bb7b5eb659dbb57ad07 Mon Sep 17 00:00:00 2001 From: ManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com> Date: Fri, 7 Apr 2023 14:47:03 +0200 Subject: Wayland: fix for issue #712 (hopefully) --- src/drivers/Wayland/Fl_Wayland_Graphics_Driver.cxx | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'src/drivers/Wayland') diff --git a/src/drivers/Wayland/Fl_Wayland_Graphics_Driver.cxx b/src/drivers/Wayland/Fl_Wayland_Graphics_Driver.cxx index a7b3610d8..1e0f87cf9 100644 --- a/src/drivers/Wayland/Fl_Wayland_Graphics_Driver.cxx +++ b/src/drivers/Wayland/Fl_Wayland_Graphics_Driver.cxx @@ -84,10 +84,12 @@ static void surface_frame_done(void *data, struct wl_callback *cb, uint32_t time struct wld_window *window = (struct wld_window *)data; //fprintf(stderr,"surface_frame_done: destroy cb=%p draw_buffer_needs_commit=%d\n", cb, window->buffer->draw_buffer_needs_commit); wl_callback_destroy(cb); - window->buffer->cb = NULL; - if (window->buffer->draw_buffer_needs_commit) { -//fprintf(stderr,"surface_frame_done: new cb=%p \n", window->buffer->cb); - Fl_Wayland_Graphics_Driver::buffer_commit(window); + if (window->buffer) { // fix for issue #712 + window->buffer->cb = NULL; + if (window->buffer->draw_buffer_needs_commit) { + //fprintf(stderr,"surface_frame_done: new cb=%p \n", window->buffer->cb); + Fl_Wayland_Graphics_Driver::buffer_commit(window); + } } } -- cgit v1.2.3