FolderItem *item,
gpointer data);
-static void key_pressed (GtkWidget *widget,
- GdkEventKey *event,
- gpointer data);
-
static void toggle_work_offline_cb(MainWindow *mainwin, guint action, GtkWidget *widget);
static void addr_harvest_cb ( MainWindow *mainwin,
GTK_SIGNAL_FUNC(main_window_close_cb), mainwin);
MANAGE_WINDOW_SIGNALS_CONNECT(window);
gtk_signal_connect(GTK_OBJECT(window), "key_press_event",
- GTK_SIGNAL_FUNC(key_pressed), mainwin);
+ GTK_SIGNAL_FUNC(mainwindow_key_pressed), mainwin);
gtk_widget_realize(window);
gtk_widget_add_events(window, GDK_KEY_PRESS_MASK|GDK_KEY_RELEASE_MASK);
#define BREAK_ON_MODIFIER_KEY() \
if ((event->state & (GDK_MOD1_MASK|GDK_CONTROL_MASK)) != 0) break
-static void key_pressed (GtkWidget *widget, GdkEventKey *event, gpointer data)
+void mainwindow_key_pressed (GtkWidget *widget, GdkEventKey *event,
+ gpointer data)
{
MainWindow *mainwin = (MainWindow*) data;
static void summary_searchbar_pressed (GtkWidget *ctree,
GdkEventKey *event,
SummaryView *summaryview);
+static void summary_searchbar_focus_evt (GtkWidget *ctree,
+ GdkEventFocus *event,
+ SummaryView *summaryview);
static void summary_searchtype_changed (GtkMenuItem *widget,
gpointer data);
static void summary_open_row (GtkSCTree *sctree,
GTK_SIGNAL_FUNC(summary_searchbar_pressed),
summaryview);
+ gtk_signal_connect(GTK_OBJECT(search_string), "focus_in_event",
+ GTK_SIGNAL_FUNC(summary_searchbar_focus_evt),
+ summaryview);
+
+ gtk_signal_connect(GTK_OBJECT(search_string), "focus_out_event",
+ GTK_SIGNAL_FUNC(summary_searchbar_focus_evt),
+ summaryview);
+
gtk_signal_connect (GTK_OBJECT(toggle_search), "toggled",
GTK_SIGNAL_FUNC(tog_searchbar_cb), summaryview);
summary_show(summaryview, summaryview->folder_item);
}
+static void summary_searchbar_focus_evt(GtkWidget *widget, GdkEventFocus *event,
+ SummaryView *summaryview)
+{
+ if (event != NULL && event->in)
+ gtk_signal_handler_block_by_func(GTK_OBJECT(summaryview->mainwin->window),
+ GTK_SIGNAL_FUNC(mainwindow_key_pressed),
+ summaryview->mainwin);
+ else
+ gtk_signal_handler_unblock_by_func(GTK_OBJECT(summaryview->mainwin->window),
+ GTK_SIGNAL_FUNC(mainwindow_key_pressed),
+ summaryview->mainwin);
+}
+
static void summary_searchtype_changed(GtkMenuItem *widget, gpointer data)
{
SummaryView *sw = (SummaryView *)data;