summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com>2023-04-28 11:27:32 +0200
committerManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com>2023-04-28 11:27:32 +0200
commit52a15632a6b8457fae2a9db61fe346c40bd46f15 (patch)
tree4f1864bd90a48df12d3285db25ad70bd8e94d018
parent04e996ee81cc4c384ace9cfe3eb0b139c4be17d6 (diff)
Make sure Wayland surface size is integer multiple of wld_ scale
-rw-r--r--src/drivers/Wayland/Fl_Wayland_Window_Driver.cxx7
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,