diff options
author | Leon Henrik Plickat <leonhenrik.plickat@stud.uni-goettingen.de> | 2020-09-25 12:25:52 +0200 |
---|---|---|
committer | Leon Henrik Plickat <leonhenrik.plickat@stud.uni-goettingen.de> | 2020-09-25 12:25:52 +0200 |
commit | a25c947534ddbb103ed9ff1c4de8c2fa444116f9 (patch) | |
tree | 3729d82c3d748c85bd9b4c243c85cc0bf0fa0d82 /src/render.c | |
parent | 09ac1ee69f213461299d965a7903f73e46a644fe (diff) | |
download | wlclock-a25c947534ddbb103ed9ff1c4de8c2fa444116f9.tar.gz wlclock-a25c947534ddbb103ed9ff1c4de8c2fa444116f9.tar.bz2 |
Avoid too large radii which cause unexpected drawing behaviour
Diffstat (limited to '')
-rw-r--r-- | src/render.c | 12 |
1 files changed, 11 insertions, 1 deletions
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); |