ecore_key_down_handler = NULL;
}
+ LOGD("Resetting input_method->input : %p", input_method->input);
input_method->input = NULL;
if (input_method->context) input_method->context->input = NULL;
input_method->context = NULL;
E_Input_Method *input_method = NULL;
E_Text_Input *old = NULL;
E_Input_Method_Context *context = NULL;
+ static E_Text_Input *last_input = NULL;
EINA_SAFETY_ON_NULL_GOTO(resource, err);
EINA_SAFETY_ON_NULL_GOTO(seat, err);
LOGD("text_input : %p\n", text_input);
old = input_method->input;
+
+ LOGD("old : %p, text_input : %p , %d", old, text_input, g_input_panel_state);
if (old == text_input)
return;
if (old)
+ _e_text_input_deactivate(old, input_method, EINA_TRUE);
+
+ if (last_input)
{
- _e_text_input_deactivate(old, input_method, EINA_TRUE);
- if (g_input_panel_state == E_INPUT_PANEL_STATE_DID_SHOW ||
- g_input_panel_state == E_INPUT_PANEL_STATE_WILL_SHOW)
- {
- g_old_text_input = old;
- }
+ if (g_old_text_input != last_input)
+ g_old_text_input = last_input;
+ LOGD("g_old_text_input : %p", g_old_text_input);
}
+ last_input = text_input;
input_method->input = text_input;
text_input->input_methods = eina_list_append(text_input->input_methods, input_method);
static void
_e_text_input_cb_deactivate(struct wl_client *client EINA_UNUSED, struct wl_resource *resource, struct wl_resource *seat)
{
+ LOGD("");
E_Text_Input *text_input = wl_resource_get_user_data(resource);
E_Input_Method *input_method = NULL;
if (text_input == g_old_text_input)
{
g_old_text_input = NULL;
+ LOGD("g_old_text_input : %p", g_old_text_input);
}
/* FIXME: should get input_method object from seat. */