Index: gtk/gtkcellrenderercombo.c
===================================================================
--- gtk/gtkcellrenderercombo.c	(revision 17559)
+++ gtk/gtkcellrenderercombo.c	(working copy)
@@ -20,6 +20,7 @@
 #include <config.h>
 #include <string.h>
 
+#include "gtkmarshalers.h"
 #include "gtkintl.h"
 #include "gtkbin.h"
 #include "gtkentry.h"
@@ -59,6 +60,13 @@
   PROP_HAS_ENTRY
 };
 
+enum {
+    SELECTED,
+    LAST_SIGNAL
+};
+
+static guint combo_cell_renderer_signals[LAST_SIGNAL];
+
 #define GTK_CELL_RENDERER_COMBO_PATH "gtk-cell-renderer-combo-path"
 
 G_DEFINE_TYPE (GtkCellRendererCombo, gtk_cell_renderer_combo, GTK_TYPE_CELL_RENDERER_TEXT)
@@ -130,6 +138,26 @@
 							 TRUE,
 							 GTK_PARAM_READWRITE));
 
+
+  /**
+   * GtkCellRendererCombo::selected:
+   * @renderer: the object which received the signal.
+   * @path: the path identifying the edited cell in the GtkTreeView
+   * @iter: a GtkTreeIter that points the row that was selected in the GtkCellRendererCombo's model
+   *
+   * If @renderer does <emphasis>not</emphasis> have an entry then this signal
+   * is emitted when the user selects an item from @renderer.
+   */
+  combo_cell_renderer_signals[SELECTED] =
+    g_signal_new("selected",
+		 G_OBJECT_CLASS_TYPE(object_class),
+		 G_SIGNAL_RUN_LAST,
+		 G_STRUCT_OFFSET (GtkCellRendererComboClass, selected),
+		 NULL, NULL,
+		 _gtk_marshal_VOID__STRING_BOXED,
+		 G_TYPE_NONE, 2,
+		 G_TYPE_STRING,
+		 GTK_TYPE_TREE_ITER);
 }
 
 static void
@@ -270,6 +298,8 @@
   if (canceled)
     return;
 
+  path = g_object_get_data (G_OBJECT (combo), GTK_CELL_RENDERER_COMBO_PATH);
+
   if (GTK_IS_COMBO_BOX_ENTRY (combo))
     {
       entry = GTK_ENTRY (gtk_bin_get_child (GTK_BIN (combo)));
@@ -279,10 +309,12 @@
     {
       model = gtk_combo_box_get_model (GTK_COMBO_BOX (combo));
       if (gtk_combo_box_get_active_iter (GTK_COMBO_BOX (combo), &iter))
+      {
+	g_signal_emit( cell, combo_cell_renderer_signals[SELECTED], 0, path, &iter );
 	gtk_tree_model_get (model, &iter, cell->text_column, &new_text, -1);
+      }
     }
 
-  path = g_object_get_data (G_OBJECT (combo), GTK_CELL_RENDERER_COMBO_PATH);
   g_signal_emit_by_name (cell, "edited", path, new_text);
 
   g_free (new_text);
Index: gtk/gtkmarshalers.list
===================================================================
--- gtk/gtkmarshalers.list	(revision 17559)
+++ gtk/gtkmarshalers.list	(working copy)
@@ -101,6 +101,7 @@
 VOID:POINTER,POINTER,POINTER
 VOID:POINTER,UINT
 VOID:STRING
+VOID:STRING,BOXED
 VOID:STRING,STRING
 VOID:STRING,INT,POINTER
 VOID:STRING,UINT,FLAGS
Index: ChangeLog
===================================================================
--- ChangeLog	(revision 17559)
+++ ChangeLog	(working copy)
@@ -1,3 +1,10 @@
+2007-03-23  James Pelletier <jamesp@trdlnk.com>
+	* gtk/gtkcellrenderercombo.c:
+	add "selected" signal for non-entry combo renderers. (#324282)
+
+	* gtk/gtkmarshalers.list:
+	add signal signature for "selected" signal. (#324282)
+
 2007-03-23  Rodney Dawes  <dobey@novell.com>
 
 	* gtk/gtkicontheme.c: Fix a couple of comment typos (#421627)
