From 285e8e843afa51e3e1ae2ffdd3b4161b566b160d Mon Sep 17 00:00:00 2001 From: ManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com> Date: Sat, 23 Apr 2022 16:15:05 +0200 Subject: Create Fl_Cairo_Graphics_Driver::handle_dummy_cairo(cairo_t *cr). --- src/drivers/Wayland/Fl_Wayland_Graphics_Driver.cxx | 9 +-------- src/drivers/Wayland/Fl_Wayland_Image_Surface_Driver.cxx | 1 + 2 files changed, 2 insertions(+), 8 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 79044c522..18de912ce 100644 --- a/src/drivers/Wayland/Fl_Wayland_Graphics_Driver.cxx +++ b/src/drivers/Wayland/Fl_Wayland_Graphics_Driver.cxx @@ -143,14 +143,7 @@ Fl_Wayland_Graphics_Driver::Fl_Wayland_Graphics_Driver () : Fl_Cairo_Graphics_Dr void Fl_Wayland_Graphics_Driver::activate(struct fl_wld_buffer *buffer, float scale) { - if (dummy_pango_layout_) { - cairo_surface_t *surf = cairo_get_target(cairo_); - cairo_destroy(cairo_); - cairo_surface_destroy(surf); - g_object_unref(dummy_pango_layout_); - dummy_pango_layout_ = NULL; - pango_layout_ = NULL; - } + if (dummy_cairo_) handle_dummy_cairo(buffer->cairo_); cairo_ = buffer->cairo_; if (pango_layout_ != buffer->pango_layout_) { if (pango_layout_) g_object_unref(pango_layout_); diff --git a/src/drivers/Wayland/Fl_Wayland_Image_Surface_Driver.cxx b/src/drivers/Wayland/Fl_Wayland_Image_Surface_Driver.cxx index a5d97fdcd..d02e7272e 100644 --- a/src/drivers/Wayland/Fl_Wayland_Image_Surface_Driver.cxx +++ b/src/drivers/Wayland/Fl_Wayland_Image_Surface_Driver.cxx @@ -47,6 +47,7 @@ Fl_Wayland_Image_Surface_Driver::Fl_Wayland_Image_Surface_Driver(int w, int h, i Fl_Wayland_Image_Surface_Driver::~Fl_Wayland_Image_Surface_Driver() { if (offscreen && !external_offscreen) { + cairo_destroy(offscreen->cairo_); free(offscreen->draw_buffer); free(offscreen); } -- cgit v1.2.3