diff --git a/toys/mug/mug.c b/toys/mug/mug.c index 846c9c33..a7c32e8b 100644 --- a/toys/mug/mug.c +++ b/toys/mug/mug.c @@ -22,6 +22,7 @@ #endif /*HAVE_CONFIG*/ #include +#include #include /* for memset */ #include "mu-util.h" @@ -362,6 +363,16 @@ mug_shell (MugData * mugdata) return mugdata->win; } +static gint +on_focus_query_bar (GtkWidget* ignored, GdkEventKey *event, MugData* mugdata) +{ + if (event->type==GDK_KEY_RELEASE && event->keyval==GDK_KEY_Escape) { + mug_query_bar_grab_focus (MUG_QUERY_BAR (mugdata->querybar)); + return 1; + } + return 0; +} + int main (int argc, char *argv[]) { @@ -390,6 +401,8 @@ main (int argc, char *argv[]) mugshell = mug_shell (&mugdata); g_signal_connect (G_OBJECT (mugshell), "destroy", G_CALLBACK (gtk_main_quit), NULL); + g_signal_connect (G_OBJECT (mugshell), "key_release_event", + G_CALLBACK ( on_focus_query_bar ), (gpointer)&mugdata ); gtk_widget_show (mugshell); mug_query_bar_grab_focus (MUG_QUERY_BAR (mugdata.querybar)); diff --git a/toys/mug2/mug.c b/toys/mug2/mug.c index 74c11ad5..b2a42deb 100644 --- a/toys/mug2/mug.c +++ b/toys/mug2/mug.c @@ -22,6 +22,7 @@ #endif /*HAVE_CONFIG*/ #include +#include #include /* for memset */ #include @@ -366,6 +367,16 @@ mug_shell (MugData * mugdata) return mugdata->win; } +static gint +on_focus_query_bar (GtkWidget* ignored, GdkEventKey *event, MugData* mugdata) +{ + if (event->type==GDK_KEY_RELEASE && event->keyval==GDK_KEY_Escape) { + mug_query_bar_grab_focus (MUG_QUERY_BAR (mugdata->querybar)); + return 1; + } + return 0; +} + int main (int argc, char *argv[]) { @@ -396,6 +407,8 @@ main (int argc, char *argv[]) mugshell = mug_shell (&mugdata); g_signal_connect (G_OBJECT (mugshell), "destroy", G_CALLBACK (gtk_main_quit), NULL); + g_signal_connect (G_OBJECT (mugshell), "key_release_event", + G_CALLBACK ( on_focus_query_bar ), (gpointer)&mugdata ); gtk_widget_show (mugshell); mug_query_bar_grab_focus (MUG_QUERY_BAR (mugdata.querybar));