summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ism/modules/panelagent/wayland/isf_wsc_context.h2
-rw-r--r--ism/modules/panelagent/wayland/wayland_panel_agent_module.cpp4
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);
}