summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLeon Henrik Plickat <leonhenrik.plickat@stud.uni-goettingen.de>2020-09-25 12:25:52 +0200
committerLeon Henrik Plickat <leonhenrik.plickat@stud.uni-goettingen.de>2020-09-25 12:25:52 +0200
commita25c947534ddbb103ed9ff1c4de8c2fa444116f9 (patch)
tree3729d82c3d748c85bd9b4c243c85cc0bf0fa0d82
parent09ac1ee69f213461299d965a7903f73e46a644fe (diff)
downloadwlclock-a25c947534ddbb103ed9ff1c4de8c2fa444116f9.tar.gz
wlclock-a25c947534ddbb103ed9ff1c4de8c2fa444116f9.tar.bz2
Avoid too large radii which cause unexpected drawing behaviour
-rw-r--r--src/render.c12
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);