gboolean is_fast;
gboolean in_typing;
guint press_timeout_id;
+
+ /* dynamic and autorun qs settings are exclusive*/
+ GtkWidget *dynamic_menuitem;
+ GtkWidget *autorun_menuitem;
};
static void quicksearch_set_running(QuickSearch *quicksearch, gboolean run);
static gboolean searchbar_changed_cb(GtkWidget *widget, QuickSearch *qs)
{
+ if (!qs->has_focus && prefs_common.summary_quicksearch_autorun) {
+ gtk_widget_grab_focus(qs->search_string_entry);
+ searchbar_run(qs, TRUE);
+ return FALSE;
+ }
+
if (prefs_common.summary_quicksearch_dynamic) {
if (qs->press_timeout_id != -1) {
g_source_remove(qs->press_timeout_id);
gboolean checked = gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(widget));
prefs_common.summary_quicksearch_dynamic = checked;
+ if (checked)
+ gtk_check_menu_item_set_active(
+ GTK_CHECK_MENU_ITEM(quicksearch->autorun_menuitem),
+ FALSE);
+
+ /* reselect the search type */
+ quicksearch_set_type(quicksearch, prefs_common.summary_quicksearch_type);
+
+ return TRUE;
+}
+
+static gboolean searchtype_autorun_changed(GtkMenuItem *widget, gpointer data)
+{
+ QuickSearch *quicksearch = (QuickSearch *)data;
+ gboolean checked = gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(widget));
+
+ prefs_common.summary_quicksearch_autorun = checked;
+ if (checked)
+ gtk_check_menu_item_set_active(
+ GTK_CHECK_MENU_ITEM(quicksearch->dynamic_menuitem),
+ FALSE);
/* reselect the search type */
quicksearch_set_type(quicksearch, prefs_common.summary_quicksearch_type);
G_CALLBACK(searchtype_dynamic_changed),
quicksearch);
+ menuitem = gtk_check_menu_item_new_with_label(_("Run on select"));
+ gtk_menu_shell_append(GTK_MENU_SHELL(search_type), menuitem);
+
+ gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(menuitem),
+ prefs_common.summary_quicksearch_autorun);
+
+ quicksearch->autorun_menuitem = menuitem;
+
+ g_signal_connect(G_OBJECT(menuitem), "activate",
+ G_CALLBACK(searchtype_autorun_changed),
+ quicksearch);
+
gtk_option_menu_set_menu(GTK_OPTION_MENU(search_type_opt), search_type);
quicksearch->search_type_opt = search_type_opt;
NULL, NULL, NULL},
{"summary_quicksearch_dynamic", "0", &prefs_common.summary_quicksearch_dynamic, P_INT,
NULL, NULL, NULL},
+ {"summary_quicksearch_autorun", "0", &prefs_common.summary_quicksearch_autorun, P_INT,
+ NULL, NULL, NULL},
{"statusbar_update_step", "10", &prefs_common.statusbar_update_step, P_INT,
NULL, NULL, NULL},
{"compose_no_markup", "FALSE", &prefs_common.compose_no_markup, P_BOOL,