simplify scrollbar slider drawing code

No more pattern for the slider, brighter shade for prelight,
and keep prelight color even when widget is active
This commit is contained in:
Paul Davis
2025-04-18 14:57:44 -06:00
parent 693565c131
commit 743657e265

View File

@@ -1694,9 +1694,6 @@ clearlooks_draw_scrollbar_slider (cairo_t *cr,
{
const CairoColor *border = &colors->shade[7];
CairoColor fill = scrollbar->color;
CairoColor hilight;
CairoColor shade1, shade2, shade3;
cairo_pattern_t *pattern;
if (scrollbar->junction & CL_JUNCTION_BEGIN)
{
@@ -1732,25 +1729,14 @@ clearlooks_draw_scrollbar_slider (cairo_t *cr,
cairo_translate (cr, x, y);
if (widget->prelight)
ge_shade_color (&fill, 1.1, &fill);
if (widget->prelight || widget->active) {
ge_shade_color (&fill, 1.6, &fill);
}
cairo_set_line_width (cr, 1);
ge_shade_color (&fill, 1.25, &hilight);
ge_shade_color (&fill, 1.16, &shade1);
ge_shade_color (&fill, 1.08, &shade2);
ge_shade_color (&fill, 1.08, &shade3);
pattern = cairo_pattern_create_linear (1, 1, 1, height-2);
cairo_pattern_add_color_stop_rgb (pattern, 0, shade1.r, shade1.g, shade1.b);
cairo_pattern_add_color_stop_rgb (pattern, 0.5, shade2.r, shade2.g, shade2.b);
cairo_pattern_add_color_stop_rgb (pattern, 0.5, fill.r, fill.g, fill.b);
cairo_pattern_add_color_stop_rgb (pattern, 1, shade3.r, shade3.g, shade3.b);
ge_cairo_rounded_rectangle (cr, 1, 1, width-2, height-2, radius, widget->corners);
cairo_set_source (cr, pattern);
ge_cairo_set_color (cr, &fill);
cairo_fill (cr);
cairo_pattern_destroy (pattern);
#if 0
if (scrollbar->has_color)