static E_Text_Input *g_show_text_input = NULL;
static struct wl_client *g_show_client = NULL;
static Eina_Bool g_updated_geometry = EINA_FALSE;
+static Eina_Bool g_input_panel_enabled = EINA_TRUE;
/* The candidate's show state that was requested by the application or IME */
static Eina_Bool g_show_state_candidate = EINA_FALSE;
if (val == false)
{
- if (!g_disable_show_panel && g_text_input && g_text_input->resource && g_client && g_input_panel_state == E_INPUT_PANEL_STATE_DID_HIDE)
+ if (!g_disable_show_panel && g_text_input && g_text_input->resource && g_client && g_input_panel_state == E_INPUT_PANEL_STATE_DID_HIDE && g_input_panel_enabled)
_e_text_input_cb_input_panel_show(g_client, g_text_input->resource);
#ifdef SUPPORT_CANDIDATE_ONEWINDOW
}
static void
+_e_text_input_cb_input_panel_enabled_set(struct wl_client *client EINA_UNUSED, struct wl_resource *resource, uint32_t enabled)
+{
+ E_Text_Input *text_input = wl_resource_get_user_data(resource);
+
+ if (!text_input)
+ {
+ WTI_WARNING(resource,
+ WL_DISPLAY_ERROR_INVALID_OBJECT,
+ "No Text Input For Resource");
+ return;
+ }
+
+ g_input_panel_enabled = enabled;
+}
+
+static void
_e_text_input_cb_mime_type_accept_set(struct wl_client *client EINA_UNUSED, struct wl_resource *resource, const char *mime_type)
{
E_Text_Input *text_input = wl_resource_get_user_data(resource);
_e_text_input_cb_mime_type_accept_set,
_e_text_input_cb_input_panel_position_set,
_e_text_input_cb_finalize_content,
- _e_text_input_cb_prediction_hint_data_set
+ _e_text_input_cb_prediction_hint_data_set,
+ _e_text_input_cb_input_panel_enabled_set
};
static void