? .yelp-window.c.swp
? stamp-yelp-marshal.h
Index: yelp-window.c
===================================================================
RCS file: /cvs/gnome/yelp/src/yelp-window.c,v
retrieving revision 1.166
diff -u -3 -p -u -p -r1.166 yelp-window.c
--- yelp-window.c	25 Jan 2005 23:04:22 -0000	1.166
+++ yelp-window.c	14 Feb 2005 23:41:42 -0000
@@ -27,6 +27,7 @@
 #endif
 
 #include <gdk-pixbuf/gdk-pixbuf.h>
+#include <gdk/gdkkeysyms.h>
 #include <gtk/gtk.h>
 #include <bonobo/bonobo-main.h>
 #include <libgnomevfs/gnome-vfs.h>
@@ -207,6 +208,9 @@ static gboolean    window_find_delete_ev
  			                           gpointer           data);
 static void        window_find_entry_changed_cb   (GtkEditable       *editable,
 						   gpointer           data);
+static void        window_find_entry_key_released_cb (GtkWidget       *widget,
+						   GdkEventKey		  *key,
+						   gpointer           data);
 static void        window_find_save_settings      (YelpWindow        *window);
 static void        window_find_buttons_set_sensitive (YelpWindow      *window,
 						      gboolean        sensitive);
@@ -1027,6 +1031,8 @@ window_populate_find (YelpWindow *window
     priv->find_entry = gtk_entry_new ();
     g_signal_connect (G_OBJECT (priv->find_entry), "changed",
 		      G_CALLBACK (window_find_entry_changed_cb), window);
+    g_signal_connect (G_OBJECT (priv->find_entry), "key-release-event",
+		      G_CALLBACK (window_find_entry_key_released_cb), window);
     gtk_box_pack_start (box, priv->find_entry, TRUE, TRUE, 0);
 
     item = gtk_tool_item_new ();
@@ -2304,6 +2310,30 @@ window_find_entry_changed_cb (GtkEditabl
 }
 
 static void
+window_find_entry_key_released_cb (GtkWidget *widget,
+					GdkEventKey		  *key,
+					gpointer           data)
+{
+    YelpWindow     *window;
+    YelpWindowPriv *priv;
+
+	if (key->keyval == GDK_Escape) {
+		g_return_if_fail (YELP_IS_WINDOW(data));
+
+		window = YELP_WINDOW (data);
+		priv = window->priv;
+
+		d (g_print ("window_find_entry_key_released_cb\n"));
+
+		gtk_widget_hide_all (priv->find_bar);
+
+		return TRUE;
+	}
+
+	return FALSE;
+}
+
+static void
 window_find_case_toggled_cb (GtkWidget *widget,
 			     gpointer   data)
 {
