From 52a15632a6b8457fae2a9db61fe346c40bd46f15 Mon Sep 17 00:00:00 2001 From: ManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com> Date: Fri, 28 Apr 2023 11:27:32 +0200 Subject: Make sure Wayland surface size is integer multiple of wld_ scale --- src/drivers/Wayland/Fl_Wayland_Window_Driver.cxx | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/drivers/Wayland/Fl_Wayland_Window_Driver.cxx b/src/drivers/Wayland/Fl_Wayland_Window_Driver.cxx index 5cef3add6..77d9d5a0a 100644 --- a/src/drivers/Wayland/Fl_Wayland_Window_Driver.cxx +++ b/src/drivers/Wayland/Fl_Wayland_Window_Driver.cxx @@ -347,14 +347,15 @@ void Fl_Wayland_Window_Driver::make_current() { Fl_Wayland_Window_Driver::wld_window = window; fl_window = (Window)window; - float scale = Fl::screen_scale(pWindow->screen_num()) * wld_scale(); + float f = Fl::screen_scale(pWindow->screen_num()); + int wld_s = wld_scale(); if (!window->buffer) { window->buffer = Fl_Wayland_Graphics_Driver::create_shm_buffer( - pWindow->w() * scale, pWindow->h() * scale); + int(pWindow->w() * f) * wld_s, int(pWindow->h() * f) * wld_s); ((Fl_Cairo_Graphics_Driver*)fl_graphics_driver)->needs_commit_tag( &window->buffer->draw_buffer_needs_commit); } - ((Fl_Wayland_Graphics_Driver*)fl_graphics_driver)->set_buffer(window->buffer, scale); + ((Fl_Wayland_Graphics_Driver*)fl_graphics_driver)->set_buffer(window->buffer, f * wld_s); cairo_rectangle_int_t *extents = subRect(); if (extents) { // make damage-to-buffer not to leak outside parent Fl_Region clip_region = fl_graphics_driver->XRectangleRegion(extents->x, extents->y, -- cgit v1.2.3