aboutsummaryrefslogtreecommitdiff
path: root/src/blocks
diff options
context:
space:
mode:
Diffstat (limited to 'src/blocks')
-rw-r--r--src/blocks/slider.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/blocks/slider.c b/src/blocks/slider.c
index 3fe6e8c..8c89ddf 100644
--- a/src/blocks/slider.c
+++ b/src/blocks/slider.c
@@ -30,7 +30,7 @@ static void block_slider_render(layout_t *layout, cairo_t *cr)
const int radius = slider->height / 2;
int bar_y = layout->y + (layout->height - slider->height) / 2;
- int bar_x = layout->x + layout->height / 2;
+ int bar_x = layout->x + (layout->width - slider->width) / 2;
cairo_matrix_t matrix;
cairo_matrix_init_scale(&matrix, 1.0 / slider->width, 1.0);
@@ -38,7 +38,7 @@ static void block_slider_render(layout_t *layout, cairo_t *cr)
cairo_pattern_t *pattern = slider->bg_color.pattern;
if (pattern != NULL) {
- render_capsule(cr, bar_x, bar_y, slider->width, radius, slider->line_width);
+ render_capsule_fast(cr, bar_x, bar_y, slider->width, radius, radius);
cairo_pattern_set_matrix(pattern, &matrix);
cairo_set_source(cr, pattern);
@@ -48,7 +48,7 @@ static void block_slider_render(layout_t *layout, cairo_t *cr)
pattern = slider->bar_color.pattern;
if (pattern != NULL) {
int current = slider->width * (slider->value / 100.0);
- render_capsule(cr, bar_x, bar_y, current, radius, slider->line_width);
+ render_capsule(cr, bar_x, bar_y, current, radius, radius);
cairo_pattern_set_matrix(pattern, &matrix);
cairo_set_source(cr, pattern);
@@ -57,7 +57,8 @@ static void block_slider_render(layout_t *layout, cairo_t *cr)
pattern = slider->line_color.pattern;
if (pattern != NULL) {
- render_capsule(cr, bar_x, bar_y, slider->width, radius, slider->line_width);
+ int line_radius = radius - slider->line_width / 2;
+ render_capsule_fast(cr, bar_x, bar_y, slider->width, radius, line_radius);
cairo_pattern_set_matrix(pattern, &matrix);
cairo_set_source(cr, pattern);