summaryrefslogtreecommitdiff
path: root/navit/gui/internal/gui_internal_search.c
diff options
context:
space:
mode:
Diffstat (limited to 'navit/gui/internal/gui_internal_search.c')
-rw-r--r--navit/gui/internal/gui_internal_search.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/navit/gui/internal/gui_internal_search.c b/navit/gui/internal/gui_internal_search.c
index 8e8daaa0b..a0d6a3b2e 100644
--- a/navit/gui/internal/gui_internal_search.c
+++ b/navit/gui/internal/gui_internal_search.c
@@ -313,21 +313,24 @@ gui_internal_create_resultlist_entry(struct gui_priv *this, struct search_list_r
return resultlist_entry;
}
+/**
+ * @brief List of possible next keys/characters given the current result list of the incremental search.
+ */
+char possible_keys_incremental_search[256]="";
+
static void
gui_internal_search_idle(struct gui_priv *this, char *wm_name, struct widget *search_list, void *param)
{
char *result_main_label=NULL,*result_sublabel=NULL,*item_name=NULL, *widget_name=NULL, *search_text;
struct search_list_result *res;
struct item *item=NULL;
- static char possible_keys[256]="";
- struct widget *search_input=NULL;
+ struct widget *search_input=NULL;
struct widget *menu, *resultlist_row, *resultlist_entry;
res=search_list_get_result(this->sl);
if (!res) {
gui_internal_search_idle_end(this);
- gui_internal_highlight_possible_keys(this, possible_keys);
- possible_keys[0]='\0';
+ gui_internal_highlight_possible_keys(this, possible_keys_incremental_search);
return;
}
@@ -364,7 +367,7 @@ gui_internal_search_idle(struct gui_priv *this, char *wm_name, struct widget *se
dbg_assert(search_input);
search_text=search_input->text;
- gui_internal_find_next_possible_key(search_text, wm_name, possible_keys, item_name);
+ gui_internal_find_next_possible_key(search_text, wm_name, possible_keys_incremental_search, item_name);
resultlist_row=gui_internal_widget_table_row_new(this, gravity_left|orientation_horizontal|flags_fill);
if (!result_sublabel)
@@ -403,6 +406,7 @@ gui_internal_search_changed(struct gui_priv *this, struct widget *wm, void *data
void *param=(void *)3;
gui_internal_widget_table_clear(this, search_list);
+ possible_keys_incremental_search[0]='\0';
if (! strcmp(wm->name,"Country"))
param=(void *)4;