? configure.lineno
Index: gtk/gtkcellrenderer.h
===================================================================
RCS file: /cvs/gnome/gtk+/gtk/gtkcellrenderer.h,v
retrieving revision 1.25
diff -u -p -r1.25 gtkcellrenderer.h
--- gtk/gtkcellrenderer.h	9 Dec 2004 17:55:58 -0000	1.25
+++ gtk/gtkcellrenderer.h	5 Dec 2006 18:37:32 -0000
@@ -33,7 +33,8 @@ typedef enum
   GTK_CELL_RENDERER_INSENSITIVE = 1 << 2,
   /* this flag means the cell is in the sort column/row */
   GTK_CELL_RENDERER_SORTED      = 1 << 3,
-  GTK_CELL_RENDERER_FOCUSED     = 1 << 4
+  GTK_CELL_RENDERER_FOCUSED     = 1 << 4,
+  GTK_CELL_RENDERER_USE_FG      = 1 << 5
 } GtkCellRendererState;
 
 typedef enum
Index: gtk/gtkcellrenderertext.c
===================================================================
RCS file: /cvs/gnome/gtk+/gtk/gtkcellrenderertext.c,v
retrieving revision 1.101
diff -u -p -r1.101 gtkcellrenderertext.c
--- gtk/gtkcellrenderertext.c	3 Dec 2006 20:02:01 -0000	1.101
+++ gtk/gtkcellrenderertext.c	5 Dec 2006 18:37:32 -0000
@@ -1624,6 +1624,7 @@ gtk_cell_renderer_text_render (GtkCellRe
   gint x_offset;
   gint y_offset;
   GtkCellRendererTextPrivate *priv;
+  gboolean use_text;
 
   priv = GTK_CELL_RENDERER_TEXT_GET_PRIVATE (cell);
 
@@ -1675,6 +1676,8 @@ gtk_cell_renderer_text_render (GtkCellRe
       cairo_destroy (cr);
     }
 
+  use_text = !(flags & GTK_CELL_RENDERER_USE_FG);
+
   if (priv->ellipsize_set && priv->ellipsize != PANGO_ELLIPSIZE_NONE)
     pango_layout_set_width (layout, 
 			    (cell_area->width - x_offset - 2 * cell->xpad) * PANGO_SCALE);
@@ -1684,7 +1687,7 @@ gtk_cell_renderer_text_render (GtkCellRe
   gtk_paint_layout (widget->style,
                     window,
                     state,
-		    TRUE,
+		    use_text,
                     expose_area,
                     widget,
                     "cellrenderertext",
Index: gtk/gtkcellview.c
===================================================================
RCS file: /cvs/gnome/gtk+/gtk/gtkcellview.c,v
retrieving revision 1.48
diff -u -p -r1.48 gtkcellview.c
--- gtk/gtkcellview.c	6 Oct 2006 18:41:39 -0000	1.48
+++ gtk/gtkcellview.c	5 Dec 2006 18:37:32 -0000
@@ -54,6 +54,8 @@ struct _GtkCellViewPrivate
 
   GdkColor background;
   gboolean background_set;
+
+  gboolean use_fg;
 };
 
 
@@ -113,7 +115,8 @@ enum
   PROP_BACKGROUND,
   PROP_BACKGROUND_GDK,
   PROP_BACKGROUND_SET,
-  PROP_MODEL
+  PROP_MODEL,
+  PROP_USE_FG
 };
 
 G_DEFINE_TYPE_WITH_CODE (GtkCellView, gtk_cell_view, GTK_TYPE_WIDGET, 
@@ -171,6 +174,17 @@ gtk_cell_view_class_init (GtkCellViewCla
                 P_("Background set"),
                 P_("Whether this tag affects the background color"));
 
+  /**
+   * GtkCellView:use-fg
+   *
+   * Hint the cell renderer to use foreground colors for text drawing.
+   *
+   * since 2.12
+   */
+  ADD_SET_PROP ("use-fg", PROP_USE_FG,
+                P_("Use foreground color when rendering text"),
+                P_("If set the cell view will get a hint to use the foreground color when rendering text."));
+
   g_type_class_add_private (gobject_class, sizeof (GtkCellViewPrivate));
 }
 
@@ -208,6 +222,9 @@ gtk_cell_view_get_property (GObject    *
       case PROP_BACKGROUND_SET:
         g_value_set_boolean (value, view->priv->background_set);
         break;
+      case PROP_USE_FG:
+        g_value_set_boolean (value, view->priv->use_fg);
+        break;
       case PROP_MODEL:
 	g_value_set_object (value, view->priv->model);
 	break;
@@ -247,6 +264,9 @@ gtk_cell_view_set_property (GObject     
       case PROP_BACKGROUND_SET:
         view->priv->background_set = g_value_get_boolean (value);
         break;
+      case PROP_USE_FG:
+        gtk_cell_view_set_use_fg (view, g_value_get_boolean (value));
+        break;
       case PROP_MODEL:
 	gtk_cell_view_set_model (view, g_value_get_object (value));
 	break;
@@ -428,7 +448,10 @@ gtk_cell_view_expose (GtkWidget      *wi
     state = GTK_CELL_RENDERER_PRELIT;
   else
     state = 0;
-      
+
+  if (cellview->priv->use_fg)
+    state |= GTK_CELL_RENDERER_USE_FG;
+
   /* PACK_START */
   for (i = cellview->priv->cell_list; i; i = i->next)
     {
@@ -1025,6 +1048,26 @@ gtk_cell_view_set_background_color (GtkC
           g_object_notify (G_OBJECT (cell_view), "background-set");
         }
     }
+
+  gtk_widget_queue_draw (GTK_WIDGET (cell_view));
+}
+
+/**
+ * gtk_cell_view_set_use_fg
+ * @cell_view: a #GtkCellView
+ * @use_fg: %TRUE if foreground colors should be used for text
+ *
+ * Sets whether to hint the cell renderer that foreground colors should be used when rendering text.
+ *
+ * Since: 2.12
+ */
+void
+gtk_cell_view_set_use_fg (GtkCellView    *cell_view,
+                          const gboolean  use_fg)
+{
+  g_return_if_fail (GTK_IS_CELL_VIEW (cell_view));
+
+  cell_view->priv->use_fg = use_fg;
 
   gtk_widget_queue_draw (GTK_WIDGET (cell_view));
 }
Index: gtk/gtkcellview.h
===================================================================
RCS file: /cvs/gnome/gtk+/gtk/gtkcellview.h,v
retrieving revision 1.11
diff -u -p -r1.11 gtkcellview.h
--- gtk/gtkcellview.h	15 Dec 2004 16:27:30 -0000	1.11
+++ gtk/gtkcellview.h	5 Dec 2006 18:37:32 -0000
@@ -67,6 +67,8 @@ gboolean          gtk_cell_view_get_size
 
 void              gtk_cell_view_set_background_color    (GtkCellView     *cell_view,
                                                          const GdkColor  *color);
+void              gtk_cell_view_set_use_fg              (GtkCellView    *cell_view,
+                                                         const gboolean  uses_bg);
 GList            *gtk_cell_view_get_cell_renderers      (GtkCellView     *cell_view);
 
 G_END_DECLS
Index: gtk/gtkcombobox.c
===================================================================
RCS file: /cvs/gnome/gtk+/gtk/gtkcombobox.c,v
retrieving revision 1.187
diff -u -p -r1.187 gtkcombobox.c
--- gtk/gtkcombobox.c	16 Nov 2006 12:56:29 -0000	1.187
+++ gtk/gtkcombobox.c	5 Dec 2006 18:37:32 -0000
@@ -2569,6 +2569,8 @@ gtk_combo_box_menu_setup (GtkComboBox *c
 
   if (combo_box->priv->cell_view)
     {
+      gtk_cell_view_set_use_fg (GTK_CELL_VIEW (combo_box->priv->cell_view), TRUE);
+
       combo_box->priv->button = gtk_toggle_button_new ();
       gtk_button_set_focus_on_click (GTK_BUTTON (combo_box->priv->button),
 				     combo_box->priv->focus_on_click);
@@ -2672,6 +2674,7 @@ gtk_cell_view_menu_item_new (GtkComboBox
   GtkRequisition req;
 
   cell_view = gtk_cell_view_new ();
+  gtk_cell_view_set_use_fg (GTK_CELL_VIEW (cell_view), TRUE);
   item = gtk_menu_item_new ();
   gtk_container_add (GTK_CONTAINER (item), cell_view);
 
@@ -3377,6 +3380,7 @@ gtk_combo_box_list_setup (GtkComboBox *c
 
   if (combo_box->priv->cell_view)
     {
+      gtk_cell_view_set_use_fg (GTK_CELL_VIEW (combo_box->priv->cell_view), FALSE);
       gtk_cell_view_set_background_color (GTK_CELL_VIEW (combo_box->priv->cell_view), 
 					  &GTK_WIDGET (combo_box)->style->base[GTK_WIDGET_STATE (combo_box)]);
 
