From c0c2cf7d408fc6bfefd9eecbfe5aabcbc4d55ff3 Mon Sep 17 00:00:00 2001 From: ManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com> Date: Wed, 8 Jan 2025 14:37:57 +0100 Subject: Make draw to image and draw to clipboard behave equally in X11 and Wayland --- src/drivers/Wayland/Fl_Wayland_Copy_Surface_Driver.cxx | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) (limited to 'src/drivers/Wayland/Fl_Wayland_Copy_Surface_Driver.cxx') diff --git a/src/drivers/Wayland/Fl_Wayland_Copy_Surface_Driver.cxx b/src/drivers/Wayland/Fl_Wayland_Copy_Surface_Driver.cxx index 90ca9ac27..0b84a037b 100644 --- a/src/drivers/Wayland/Fl_Wayland_Copy_Surface_Driver.cxx +++ b/src/drivers/Wayland/Fl_Wayland_Copy_Surface_Driver.cxx @@ -22,15 +22,14 @@ Fl_Wayland_Copy_Surface_Driver::Fl_Wayland_Copy_Surface_Driver(int w, int h) : Fl_Copy_Surface_Driver(w, h) { - struct Fl_Wayland_Window_Driver::surface_output *s_output = NULL; - if (Fl_Wayland_Window_Driver::wld_window && - !wl_list_empty(&Fl_Wayland_Window_Driver::wld_window->outputs)) { - s_output = wl_container_of(Fl_Wayland_Window_Driver::wld_window->outputs.next, s_output, link); + float os_scale = Fl_Graphics_Driver::default_driver().scale(); + int d = 1; + if (Fl::first_window()) { + d = Fl_Wayland_Window_Driver::driver(Fl::first_window())->wld_scale(); } - int os_scale = (s_output ? s_output->output->wld_scale : 1); - img_surf = new Fl_Image_Surface(w * os_scale, h * os_scale); + img_surf = new Fl_Image_Surface(int(w * os_scale) * d, int(h * os_scale) * d); driver(img_surf->driver()); - driver()->scale(os_scale); + driver()->scale(d * os_scale); } -- cgit v1.2.3