- gdk_gc_set_rgb_fg_color (gc, &widget->style->bg[GTK_STATE_SELECTED]);
- perc_w = w * cellprogress->priv->value / 100;
- gdk_draw_rectangle (window, gc, TRUE, is_rtl ? (x + w - perc_w) : x, y, perc_w, h);
+ cairo_rectangle (cr, x, y, w, h);
+ gdk_cairo_set_source_color (cr, &widget->style->bg[GTK_STATE_NORMAL]);
+ cairo_fill (cr);
+
+ perc_w = w * MAX (0, cellprogress->priv->value) / 100;
+
+ cairo_rectangle (cr, is_rtl ? (x + w - perc_w) : x, y, perc_w, h);
+ gdk_cairo_set_source_color (cr, &widget->style->bg[GTK_STATE_SELECTED]);
+ cairo_fill (cr);