diff options
Diffstat (limited to 'widgets/misc/e-search-bar.c')
-rw-r--r-- | widgets/misc/e-search-bar.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/widgets/misc/e-search-bar.c b/widgets/misc/e-search-bar.c index 430b12aa2f..85ce98217a 100644 --- a/widgets/misc/e-search-bar.c +++ b/widgets/misc/e-search-bar.c @@ -29,6 +29,7 @@ #include <config.h> #endif +#include <gdk/gdkkeysyms.h> #include <gtk/gtkdrawingarea.h> #include <gtk/gtkeventbox.h> #include <gtk/gtkmenuitem.h> @@ -481,6 +482,20 @@ clear_button_clicked_cb (GtkWidget *widget, GdkEventButton *event, gtk_widget_grab_focus (esb->entry); } +static gboolean +entry_key_press_cb (GtkWidget *widget, + GdkEventKey *key_event, + ESearchBar *esb) +{ + if (((key_event->state & gtk_accelerator_get_default_mod_mask ()) == + GDK_MOD1_MASK) && (key_event->keyval == GDK_Down)) { + option_button_clicked_cb (NULL, NULL, esb); + return TRUE; + } + + return FALSE; +} + static void scopeoption_changed_cb (GtkWidget *option_menu, ESearchBar *search_bar) { @@ -932,6 +947,8 @@ e_search_bar_construct (ESearchBar *search_bar, G_CALLBACK (entry_focus_in_cb), search_bar); g_signal_connect (search_bar->entry, "focus-out-event", G_CALLBACK (entry_focus_out_cb), search_bar); + g_signal_connect (search_bar->entry, "key-press-event", + G_CALLBACK (entry_key_press_cb), search_bar); search_bar->clear_button = e_icon_entry_create_button ("gtk-clear"); g_signal_connect (G_OBJECT (search_bar->clear_button), "button-press-event", clear_button_clicked_cb, search_bar); |