Index: gtkfilechooserbutton.h
===================================================================
RCS file: /cvs/gnome/gtk+/gtk/gtkfilechooserbutton.h,v
retrieving revision 1.7
diff -U5 -r1.7 gtkfilechooserbutton.h
--- gtkfilechooserbutton.h	7 Nov 2005 15:57:18 -0000	1.7
+++ gtkfilechooserbutton.h	28 Aug 2006 08:58:48 -0000
@@ -56,18 +56,19 @@
 struct _GtkFileChooserButtonClass
 {
   /*< private >*/
   GtkHBoxClass parent_class;
 
+  void (* file_set) (GtkFileChooserButton *fc);
+
   void (*__gtk_reserved1);
   void (*__gtk_reserved2);
   void (*__gtk_reserved3);
   void (*__gtk_reserved4);
   void (*__gtk_reserved5);
   void (*__gtk_reserved6);
   void (*__gtk_reserved7);
-  void (*__gtk_reserved8);
 };
 
 
 GType                 gtk_file_chooser_button_get_type         (void) G_GNUC_CONST;
 GtkWidget *           gtk_file_chooser_button_new              (const gchar          *title,
Index: gtkfilechooserbutton.c
===================================================================
RCS file: /cvs/gnome/gtk+/gtk/gtkfilechooserbutton.c,v
retrieving revision 1.52
diff -U5 -r1.52 gtkfilechooserbutton.c
--- gtkfilechooserbutton.c	17 Aug 2006 04:42:27 -0000	1.52
+++ gtkfilechooserbutton.c	28 Aug 2006 08:58:49 -0000
@@ -46,10 +46,11 @@
 #include "gtktreemodelfilter.h"
 #include "gtkvseparator.h"
 #include "gtkfilechooserdialog.h"
 #include "gtkfilechooserprivate.h"
 #include "gtkfilechooserutils.h"
+#include "gtkmarshalers.h"
 
 #include "gtkfilechooserbutton.h"
 
 #ifdef G_OS_WIN32
 #include "gtkfilesystemwin32.h"
@@ -84,10 +85,17 @@
   PROP_FOCUS_ON_CLICK,
   PROP_TITLE,
   PROP_WIDTH_CHARS
 };
 
+/* Signals */
+enum
+{
+  FILE_SET,
+  LAST_SIGNAL
+};
+
 /* TreeModel Columns */
 enum
 {
   ICON_COLUMN,
   DISPLAY_NAME_COLUMN,
@@ -299,10 +307,11 @@
 						  gpointer        user_data);
 static void     dialog_response_cb               (GtkDialog      *dialog,
 						  gint            response,
 						  gpointer        user_data);
 
+static guint file_chooser_button_signals[LAST_SIGNAL] = { 0 };
 
 /* ******************* *
  *  GType Declaration  *
  * ******************* */
 
@@ -340,10 +349,26 @@
   widget_class->hide = gtk_file_chooser_button_hide;
   widget_class->map = gtk_file_chooser_button_map;
   widget_class->style_set = gtk_file_chooser_button_style_set;
   widget_class->screen_changed = gtk_file_chooser_button_screen_changed;
   widget_class->mnemonic_activate = gtk_file_chooser_button_mnemonic_activate;
+  
+  class->file_set = NULL;
+
+  /**
+   * GtkFileChooserButtons::file-set:
+   * @widget: the object which received the signal.
+   *
+   */
+  file_chooser_button_signals[FILE_SET] =
+    g_signal_new (I_("file-set"),
+		  G_TYPE_FROM_CLASS (gobject_class),
+		  G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION,
+		  G_STRUCT_OFFSET (GtkFileChooserButtonClass, file_set),
+		  NULL, NULL,
+		  _gtk_marshal_VOID__VOID,
+		  G_TYPE_NONE, 0);
 
   /**
    * GtkFileChooserButton:dialog:
    * 
    * Instance of the #GtkFileChooserDialog associated with the button.
@@ -2527,10 +2552,12 @@
       priv->active = FALSE;
     }
 
   gtk_widget_set_sensitive (priv->combo_box, TRUE);
   gtk_widget_hide (priv->dialog);
+
+  g_signal_emit_by_name (user_data, "file-set");
 }
 
 
 /* ************************************************************************** *
  *  Public API                                                                *
