aboutsummaryrefslogtreecommitdiffstats
path: root/gtk
diff options
context:
space:
mode:
authorGerald Combs <gerald@wireshark.org>2006-11-18 17:17:28 +0000
committerGerald Combs <gerald@wireshark.org>2006-11-18 17:17:28 +0000
commit1f01b81e6e166aa3bb8dde0ac9103e4d09710ebd (patch)
treeab698c97b1dd2ee8f78419f7ffbc68c045d88d8a /gtk
parentedbc4b922ec53d89cc900794c211768b6de9f3b8 (diff)
If the user starts typing ([a-zA-Z0-9]) anywhere in the main window, start
filling in a display filter. svn path=/trunk/; revision=19930
Diffstat (limited to 'gtk')
-rw-r--r--gtk/main.c21
1 files changed, 14 insertions, 7 deletions
diff --git a/gtk/main.c b/gtk/main.c
index 3615ae964c..8d69997f71 100644
--- a/gtk/main.c
+++ b/gtk/main.c
@@ -3803,13 +3803,20 @@ toolbar_display_airpcap_key_management_cb(GtkWidget *w, gpointer data)
static int
top_level_key_pressed_cb(GtkCTree *ctree _U_, GdkEventKey *event, gpointer user_data _U_)
{
- switch (event->keyval) {
- case GDK_F8:
- packet_list_next();
- return TRUE;
- case GDK_F7:
- packet_list_prev();
- return TRUE;
+ if (event->keyval == GDK_F8) {
+ packet_list_next();
+ return TRUE;
+ } else if (event->keyval == GDK_F7) {
+ packet_list_prev();
+ return TRUE;
+ } else if ((event->keyval >= GDK_0 && event->keyval <= GDK_9) ||
+ (event->keyval >= GDK_A && event->keyval <= GDK_Z) ||
+ (event->keyval >= GDK_a && event->keyval <= GDK_z) ) {
+ /* Forward the keypress on to the display filter entry */
+ if (main_display_filter_widget && !gtk_widget_is_focus(main_display_filter_widget)) {
+ gtk_window_set_focus(GTK_WINDOW(top_level), main_display_filter_widget);
+ }
+ return FALSE;
}
return FALSE;
}