From: Alexander Butenko Date: Sun, 8 Jan 2012 02:55:18 +0000 (-0400) Subject: Fix keyboard navigation in suggestions X-Git-Url: https://spindle.queued.net/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3d5d2f47661b0d82eec35a679acfe329522562ab;p=midori Fix keyboard navigation in suggestions --- 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);