diff options
Diffstat (limited to 'src/drivers')
| -rw-r--r-- | src/drivers/Wayland/Fl_Wayland_Graphics_Driver.cxx | 10 |
1 files changed, 6 insertions, 4 deletions
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); + } } } |
