--- plugins/clock/clock-analog.c.orig 2011-04-06 13:14:40.000000000 -0400 +++ plugins/clock/clock-analog.c 2011-05-10 13:45:09.000000000 -0400 @@ -50,6 +50,11 @@ static void xfce_clock_analog_finalize (GObject *object); static gboolean xfce_clock_analog_expose_event (GtkWidget *widget, GdkEventExpose *event); +static void xfce_clock_analog_draw_one_tick (cairo_t *cr, + gdouble xc, + gdouble yc, + gdouble radius, + gdouble angle); static void xfce_clock_analog_draw_ticks (cairo_t *cr, gdouble xc, gdouble yc, @@ -254,12 +259,13 @@ { /* second pointer */ angle = TICKS_TO_RADIANS (tm.tm_sec); - xfce_clock_analog_draw_pointer (cr, xc, yc, radius, angle, 0.7, TRUE); + xfce_clock_analog_draw_one_tick (cr, xc, yc, 0.75 * radius, angle); + cairo_fill (cr); } /* minute pointer */ angle = TICKS_TO_RADIANS (tm.tm_min); - xfce_clock_analog_draw_pointer (cr, xc, yc, radius, angle, 0.8, FALSE); + xfce_clock_analog_draw_pointer (cr, xc, yc, radius, angle, 0.8, TRUE); /* hour pointer */ angle = HOURS_TO_RADIANS (tm.tm_hour, tm.tm_min); @@ -273,6 +279,23 @@ } +static void +xfce_clock_analog_draw_one_tick (cairo_t *cr, + gdouble xc, + gdouble yc, + gdouble radius, + gdouble angle) +{ + gdouble x, y; + + x = xc + sin (angle) * (radius * (1.0 - CLOCK_SCALE)); + y = yc + cos (angle) * (radius * (1.0 - CLOCK_SCALE)); + + /* draw arc */ + cairo_move_to (cr, x, y); + cairo_arc (cr, x, y, radius * CLOCK_SCALE, 0, 2 * G_PI); + cairo_close_path (cr); +} static void xfce_clock_analog_draw_ticks (cairo_t *cr, @@ -281,19 +304,13 @@ gdouble radius) { gint i; - gdouble x, y, angle; + gdouble angle; for (i = 0; i < 12; i++) { /* calculate */ angle = HOURS_TO_RADIANS (i, 0); - x = xc + sin (angle) * (radius * (1.0 - CLOCK_SCALE)); - y = yc + cos (angle) * (radius * (1.0 - CLOCK_SCALE)); - - /* draw arc */ - cairo_move_to (cr, x, y); - cairo_arc (cr, x, y, radius * CLOCK_SCALE, 0, 2 * G_PI); - cairo_close_path (cr); + xfce_clock_analog_draw_one_tick (cr, xc, yc, radius, angle); } /* fill the arcs */