diff options
Diffstat (limited to 'navit/gui/internal/gui_internal_search.c')
-rw-r--r-- | navit/gui/internal/gui_internal_search.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/navit/gui/internal/gui_internal_search.c b/navit/gui/internal/gui_internal_search.c index a0d6a3b2e..e5e137e07 100644 --- a/navit/gui/internal/gui_internal_search.c +++ b/navit/gui/internal/gui_internal_search.c @@ -212,6 +212,9 @@ gui_internal_highlight_possible_keys(struct gui_priv *this, char *possible_keys) { struct menu_data *md; + if (!this->keyboard) + return; + md=gui_internal_menu_data(this); if (md && md->keyboard && !(this->flags & 2048)) { GList *lk=md->keyboard->children; @@ -225,9 +228,9 @@ gui_internal_highlight_possible_keys(struct gui_priv *this, char *possible_keys) if (child_->data && strcmp("\b", child_->data)) { // FIXME don't disable special keys if ( (strlen(possible_keys) == 0) || (g_strrstr(possible_keys, child_->data)!=NULL ) ) { - child_->state|= STATE_HIGHLIGHTED|STATE_VISIBLE|STATE_SENSITIVE|STATE_CLEAR ; + child_->state|= STATE_HIGHLIGHTED|STATE_SENSITIVE|STATE_CLEAR ; } else { - child_->state&= ~(STATE_HIGHLIGHTED|STATE_VISIBLE|STATE_SELECTED) ; + child_->state&= ~STATE_HIGHLIGHTED; } gui_internal_widget_render(this,child_); } @@ -431,13 +434,9 @@ gui_internal_search_changed(struct gui_priv *this, struct widget *wm, void *data search_attr.type=attr_house_number; search_attr.u.str=wm->text; search_list_search(this->sl, &search_attr, 1); - // Text is not necessarily entered via the on-screen keyboard, - // but we now switch it to lower case anyway. - gui_internal_keyboard_to_lower_case(this); gui_internal_search_idle_start(this, wm->name, search_list, param); } else { // If not enough content is entered, we highlight all keys. - gui_internal_keyboard_to_upper_case(this); gui_internal_highlight_possible_keys(this, ""); } l=g_list_last(this->root.children); @@ -570,6 +569,8 @@ gui_internal_search(struct gui_priv *this, const char *what, const char *type, i wk->name=g_strdup(type); if (this->keyboard) gui_internal_widget_append(w, gui_internal_keyboard(this, keyboard_mode)); + else + gui_internal_keyboard_show_native(this, w, keyboard_mode, getenv("LANG")); gui_internal_menu_render(this); } |