From a25c947534ddbb103ed9ff1c4de8c2fa444116f9 Mon Sep 17 00:00:00 2001 From: Leon Henrik Plickat Date: Fri, 25 Sep 2020 12:25:52 +0200 Subject: Avoid too large radii which cause unexpected drawing behaviour --- src/render.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/render.c b/src/render.c index 03f4631..920a5a3 100644 --- a/src/render.c +++ b/src/render.c @@ -48,6 +48,16 @@ static void draw_background (cairo_t *cairo, struct Wlclock_dimensions *dimensio int32_t radius_bottom_left = scale * clock->radius_bottom_left; int32_t radius_bottom_right = scale * clock->radius_bottom_right; + /* Avoid too radii so big that they cause unexpected drawing behaviour. */ + if ( radius_top_left > center_size / 2 ) + radius_top_left = center_size / 2; + if ( radius_top_right > center_size / 2 ) + radius_top_right = center_size / 2; + if ( radius_bottom_left > center_size / 2 ) + radius_bottom_left = center_size / 2; + if ( radius_bottom_right > center_size / 2 ) + radius_bottom_right = center_size / 2; + clocklog(clock, 2, "[render] Render dimensions: size=%d cx=%d cy=%d w=%d h=%d\n", center_size, center_x, center_y, w, h); @@ -124,7 +134,7 @@ static void draw_clock_face (cairo_t *cairo, struct Wlclock_dimensions *dimensio else cairo_line_to(cairo, cx + ir * cos(phi), cy + ir * sin(phi)); } - cairo_set_line_width(cairo, 1); + cairo_set_line_width(cairo, 1 * scale); colour_set_cairo_source(cairo, &clock->clock_colour); cairo_stroke(cairo); cairo_restore(cairo); -- cgit v1.2.3