From adccc3ec8442921117da9b7adf87a814cd27ddc3 Mon Sep 17 00:00:00 2001 From: tokyo4j Date: Tue, 24 Dec 2024 13:39:25 +0900 Subject: [PATCH] img: fix scaling for rendering large image in non-square rectangle 16dbdc6 caused a regression that the vscode icon (1024x1024) in the titlebar is cut off with following configuraion: window.button.width: 26 window.button.height: 16 --- src/img/img.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/img/img.c b/src/img/img.c index 241c911c..ccb7cdcc 100644 --- a/src/img/img.c +++ b/src/img/img.c @@ -138,9 +138,9 @@ render_cairo_surface(cairo_surface_t *surface, int width, int height, .height = height - 2 * padding, }; - struct wlr_box src_box = box_fit_within(src_w, src_h, &container); - double scene_scale = MIN(1.0, (double_t)container.width / (double)src_w); - cairo_translate(cairo, src_box.x, src_box.y); + struct wlr_box dst_box = box_fit_within(src_w, src_h, &container); + double scene_scale = (double)dst_box.width / (double)src_w; + cairo_translate(cairo, dst_box.x, dst_box.y); cairo_scale(cairo, scene_scale, scene_scale); cairo_set_source_surface(cairo, surface, 0, 0); cairo_pattern_set_filter(cairo_get_source(cairo), CAIRO_FILTER_GOOD);