From 3d5d2f47661b0d82eec35a679acfe329522562ab Mon Sep 17 00:00:00 2001 From: Alexander Butenko Date: Sat, 7 Jan 2012 22:55:18 -0400 Subject: [PATCH] Fix keyboard navigation in suggestions --- extensions/formhistory/formhistory-frontend.h | 2 +- extensions/formhistory/formhistory-gdom-frontend.c | 10 ++++++---- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/extensions/formhistory/formhistory-frontend.h b/extensions/formhistory/formhistory-frontend.h index ee919717..3f7469f8 100644 --- a/extensions/formhistory/formhistory-frontend.h +++ b/extensions/formhistory/formhistory-frontend.h @@ -35,7 +35,7 @@ typedef struct GtkWidget* popup; GtkWidget* root; gchar* oldkeyword; - guint selection_index; + glong selection_index; #else gchar* jsforms; #endif diff --git a/extensions/formhistory/formhistory-gdom-frontend.c b/extensions/formhistory/formhistory-gdom-frontend.c index 18efd82d..2912347a 100644 --- a/extensions/formhistory/formhistory-gdom-frontend.c +++ b/extensions/formhistory/formhistory-gdom-frontend.c @@ -272,16 +272,18 @@ formhistory_editbox_key_pressed_cb (WebKitDOMElement* element, matches = gtk_tree_model_iter_n_children (priv->completion_model, NULL); if (key == 38) { - if (priv->selection_index == -1) + if (priv->selection_index <= 0) priv->selection_index = matches - 1; else - priv->selection_index = MAX (priv->selection_index - 1, 1); + priv->selection_index = MAX (priv->selection_index - 1, 0); } else { - priv->selection_index = MIN (priv->selection_index + 1, matches -1); + if (priv->selection_index == matches - 1) + priv->selection_index = 0; + else + priv->selection_index = MIN (priv->selection_index + 1, matches -1); } - path = gtk_tree_path_new_from_indices (priv->selection_index, -1); gtk_tree_view_set_cursor (GTK_TREE_VIEW (priv->treeview), path, NULL, FALSE); formhistory_suggestion_set (path, priv);