{
E_Text_Input *text_input = wl_resource_get_user_data(resource);
E_Input_Method *input_method = NULL;
- Eina_Bool _context_created = EINA_FALSE;
if (!text_input)
{
text_input, (text_input == g_text_input), input_method, input_method->resource, input_method->context,
(input_method->context ? input_method->context->resource : NULL), resource);
+ if (input_method->input)
+ _e_text_input_deactivate(text_input, input_method, EINA_FALSE);
+
if ((!input_method->context) || (!input_method->context->resource))
- _context_created = _e_text_input_method_create_context(client, input_method, text_input, EINA_FALSE);
+ _e_text_input_method_create_context(client, input_method, text_input, EINA_FALSE);
- if (text_input == g_text_input)
+ if (text_input == g_text_input &&
+ input_method->resource && input_method->context && input_method->context->resource)
{
- if (_context_created)
- _e_text_input_deactivate(text_input, input_method, EINA_FALSE);
+ wl_input_method_send_destroy(input_method->resource, input_method->context->resource);
+ LOGI("wm_map TEXTINPUT destroy : input_method->resource(%p) input_method->context->resource(%p)",
+ input_method->resource, input_method->context->resource);
- if (input_method->resource && input_method->context && input_method->context->resource)
- {
- wl_input_method_send_destroy(input_method->resource, input_method->context->resource);
- LOGI("wm_map TEXTINPUT destroy : input_method->resource(%p) input_method->context->resource(%p)",
- input_method->resource, input_method->context->resource);
-
- destroyed_resource = input_method->resource;
- }
+ destroyed_resource = input_method->resource;
}
}