diff options
| author | ManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com> | 2023-04-28 11:27:32 +0200 |
|---|---|---|
| committer | ManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com> | 2023-04-28 11:27:32 +0200 |
| commit | 52a15632a6b8457fae2a9db61fe346c40bd46f15 (patch) | |
| tree | 4f1864bd90a48df12d3285db25ad70bd8e94d018 /src/drivers | |
| parent | 04e996ee81cc4c384ace9cfe3eb0b139c4be17d6 (diff) | |
Make sure Wayland surface size is integer multiple of wld_ scale
Diffstat (limited to 'src/drivers')
| -rw-r--r-- | src/drivers/Wayland/Fl_Wayland_Window_Driver.cxx | 7 |
1 files changed, 4 insertions, 3 deletions
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, |
