region: Improved keynav on the input chooser

This makes the dialog return when the user presses Enter on the filter
entry and prevents the GtkTreeView search popup from being used since
we already handle searching on that tree view.

https://bugzilla.gnome.org/show_bug.cgi?id=662489
This commit is contained in:
Rui Matos 2012-05-17 00:13:54 +02:00 committed by Bastien Nocera
parent e38f9acf39
commit 375bf2363f

View file

@ -432,6 +432,13 @@ row_activated (GtkTreeView *tree_view,
gtk_dialog_response (GTK_DIALOG (dialog), GTK_RESPONSE_OK); gtk_dialog_response (GTK_DIALOG (dialog), GTK_RESPONSE_OK);
} }
static void
entry_activated (GtkBuilder *builder,
gpointer data)
{
row_activated (NULL, NULL, NULL, builder);
}
static gboolean static gboolean
filter_func (GtkTreeModel *model, filter_func (GtkTreeModel *model,
GtkTreeIter *iter, GtkTreeIter *iter,
@ -506,6 +513,12 @@ input_chooser_new (GtkWindow *main_window)
gtk_tree_view_append_column (GTK_TREE_VIEW (filtered_list), gtk_tree_view_append_column (GTK_TREE_VIEW (filtered_list),
visible_column); visible_column);
/* We handle searching ourselves, thank you. */
gtk_tree_view_set_enable_search (GTK_TREE_VIEW (filtered_list), FALSE);
gtk_tree_view_set_search_column (GTK_TREE_VIEW (filtered_list), -1);
g_signal_connect_swapped (G_OBJECT (filter_entry), "activate",
G_CALLBACK (entry_activated), builder);
g_signal_connect_swapped (G_OBJECT (filter_entry), "notify::text", g_signal_connect_swapped (G_OBJECT (filter_entry), "notify::text",
G_CALLBACK (filter_changed), builder); G_CALLBACK (filter_changed), builder);