diff options
-rw-r--r-- | ism/modules/panelagent/wayland/isf_wsc_context.h | 2 | ||||
-rw-r--r-- | ism/modules/panelagent/wayland/wayland_panel_agent_module.cpp | 4 |
2 files changed, 5 insertions, 1 deletions
diff --git a/ism/modules/panelagent/wayland/isf_wsc_context.h b/ism/modules/panelagent/wayland/isf_wsc_context.h index 0c270e02..04df1d31 100644 --- a/ism/modules/panelagent/wayland/isf_wsc_context.h +++ b/ism/modules/panelagent/wayland/isf_wsc_context.h @@ -113,6 +113,7 @@ struct _WSCContextISF { Eina_Bool language_initialized; Eina_Bool return_key_disabled; + Eina_Bool input_panel_shown; WSCContextISFImpl *impl; @@ -141,6 +142,7 @@ struct _WSCContextISF { autocapital_type_initialized(EINA_FALSE), language_initialized(EINA_FALSE), return_key_disabled(EINA_FALSE), + input_panel_shown(EINA_FALSE), impl(NULL), id(0), next(NULL) diff --git a/ism/modules/panelagent/wayland/wayland_panel_agent_module.cpp b/ism/modules/panelagent/wayland/wayland_panel_agent_module.cpp index cb2d3aa1..a0fc1a17 100644 --- a/ism/modules/panelagent/wayland/wayland_panel_agent_module.cpp +++ b/ism/modules/panelagent/wayland/wayland_panel_agent_module.cpp @@ -886,6 +886,7 @@ _wsc_im_show_input_panel (void *data, struct wl_input_method *input_method, stru if (!wsc || !wsc->wsc_ctx) return; isf_wsc_context_input_panel_show (wsc->wsc_ctx); + wsc->wsc_ctx->input_panel_shown = true; if (_TV) remote_surrounding_get (wsc->wsc_ctx); @@ -898,6 +899,7 @@ _wsc_im_hide_input_panel (void *data, struct wl_input_method *input_method, stru if (!wsc || !wsc->wsc_ctx) return; isf_wsc_context_input_panel_hide (wsc->wsc_ctx); + wsc->wsc_ctx->input_panel_shown = false; } static const struct wl_input_method_listener wsc_im_listener = { @@ -1564,7 +1566,7 @@ isf_wsc_context_send_surrounding_text (WSCContextISF* wsc_ctx, const char *text, context_scim->impl->cursor_pos = cursor; if (_TV) { - if (context_scim->impl->input_resource != INPUT_RESOURCE_REMOTE) { + if (context_scim->input_panel_shown && context_scim->impl->input_resource != INPUT_RESOURCE_REMOTE) { if (context_scim->impl->panel_layout == ECORE_IMF_INPUT_PANEL_LAYOUT_PASSWORD) { g_info_manager->remoteinput_callback_surrounding_text (String (""), 0); } |