aboutsummaryrefslogtreecommitdiffstats
path: root/gtk
diff options
context:
space:
mode:
authorStig Bjørlykke <stig@bjorlykke.org>2008-10-24 22:13:07 +0000
committerStig Bjørlykke <stig@bjorlykke.org>2008-10-24 22:13:07 +0000
commitee48afbc74655f8db58fdf0bdd25ca7840a82b24 (patch)
tree6381b03adf3fdfa128647ce6b8b222a4153537ae /gtk
parent9fb53f8f0a42acfb3e755a42c86044ea7318130a (diff)
Always select an entry in the autocomplete list.
svn path=/trunk/; revision=26544
Diffstat (limited to 'gtk')
-rw-r--r--gtk/filter_autocomplete.c26
1 files changed, 18 insertions, 8 deletions
diff --git a/gtk/filter_autocomplete.c b/gtk/filter_autocomplete.c
index 8bde024f9f..8d109c4e6c 100644
--- a/gtk/filter_autocomplete.c
+++ b/gtk/filter_autocomplete.c
@@ -430,8 +430,6 @@ filter_string_te_key_pressed_cb(GtkWidget *filter_te, GdkEventKey *event)
case GDK_BackSpace:
filter_autocomplete_handle_backspace(treeview, popup_win, prefix, w_toplevel);
- if( strlen(prefix) )
- autocompletion_list_lookup(popup_win, treeview, prefix);
break;
default: {
@@ -554,12 +552,10 @@ filter_autocomplete_new(GtkWidget *filter_te, const gchar *protocol_name, gboole
g_signal_connect(filter_te, "focus-out-event", G_CALLBACK(filter_te_focus_out_cb), w_toplevel);
g_signal_connect(popup_win, "destroy", G_CALLBACK(filter_autocomplete_win_destroy_cb), NULL);
- if (protocols_only) {
- /* Select first entry */
- selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(treeview));
- gtk_tree_model_get_iter_first(GTK_TREE_MODEL(store), &iter);
- gtk_tree_selection_select_iter(GTK_TREE_SELECTION(selection), &iter);
- }
+ /* Select first entry */
+ selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(treeview));
+ gtk_tree_model_get_iter_first(GTK_TREE_MODEL(store), &iter);
+ gtk_tree_selection_select_iter(GTK_TREE_SELECTION(selection), &iter);
gtk_widget_size_request(treeview, &requisition);
@@ -581,6 +577,10 @@ static void
filter_autocomplete_handle_backspace(GtkWidget *list, GtkWidget *popup_win, gchar *prefix, GtkWidget *main_win)
{
GtkListStore *store;
+ GtkTreeSelection *selection;
+ GtkRequisition requisition;
+ GtkTreeIter iter;
+
void *cookie, *cookie2;
protocol_t *protocol;
int i;
@@ -635,6 +635,16 @@ filter_autocomplete_handle_backspace(GtkWidget *list, GtkWidget *popup_win, gcha
}
}
}
+
+ /* Select first entry */
+ selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(list));
+ gtk_tree_model_get_iter_first(GTK_TREE_MODEL(store), &iter);
+ gtk_tree_selection_select_iter(GTK_TREE_SELECTION(selection), &iter);
+
+ gtk_widget_size_request(list, &requisition);
+
+ gtk_widget_set_size_request (popup_win, (requisition.width<100?125:requisition.width+25), (requisition.height<200? requisition.height+8:200));
+ gtk_window_resize(GTK_WINDOW(popup_win), (requisition.width<100?125:requisition.width+25), (requisition.height<200? requisition.height+8:200));
}
static void