diff options
| author | ManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com> | 2025-01-08 14:37:57 +0100 |
|---|---|---|
| committer | ManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com> | 2025-01-08 14:37:57 +0100 |
| commit | c0c2cf7d408fc6bfefd9eecbfe5aabcbc4d55ff3 (patch) | |
| tree | 2d84ced5a6069a7841afebfb277fbcbe0d743561 /src/drivers/Xlib | |
| parent | ca786597f773eb6f064fcb98a1e9437d2cfe8ac4 (diff) | |
Make draw to image and draw to clipboard behave equally in X11 and Wayland
Diffstat (limited to 'src/drivers/Xlib')
| -rw-r--r-- | src/drivers/Xlib/Fl_Xlib_Copy_Surface_Driver.cxx | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/drivers/Xlib/Fl_Xlib_Copy_Surface_Driver.cxx b/src/drivers/Xlib/Fl_Xlib_Copy_Surface_Driver.cxx index 8fab122fe..c905dbbad 100644 --- a/src/drivers/Xlib/Fl_Xlib_Copy_Surface_Driver.cxx +++ b/src/drivers/Xlib/Fl_Xlib_Copy_Surface_Driver.cxx @@ -45,7 +45,6 @@ Fl_Xlib_Copy_Surface_Driver::Fl_Xlib_Copy_Surface_Driver(int w, int h) : Fl_Copy cairo_surface_t *surf = cairo_xlib_surface_create(fl_display, xid->offscreen(), fl_visual->visual, w * s, h * s); cairo_ = cairo_create(surf); cairo_surface_destroy(surf); - cairo_scale(cairo_, 1/s, 1/s); cairo_save(cairo_); ((Fl_X11_Cairo_Graphics_Driver*)driver())->set_cairo(cairo_); #endif @@ -62,8 +61,10 @@ Fl_Xlib_Copy_Surface_Driver::~Fl_Xlib_Copy_Surface_Driver() { Fl_RGB_Image *rgb = Fl::screen_driver()->read_win_rectangle(0, 0, width, height, 0); fl_window = old_win; if (is_current()) end_current(); - Fl_X11_Screen_Driver::copy_image(rgb->array, rgb->w(), rgb->h(), 1); - delete rgb; + if (rgb) { + Fl_X11_Screen_Driver::copy_image(rgb->array, rgb->w(), rgb->h(), 1); + delete rgb; + } delete xid; #if FLTK_USE_CAIRO cairo_destroy(cairo_); |
