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.c13
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);
}