Move input_panel_shown_once flag into deactivate event 37/208737/1
authorSungmin Kwak <sungmin.kwak@samsung.com>
Thu, 27 Jun 2019 23:47:11 +0000 (08:47 +0900)
committerSungmin Kwak <sungmin.kwak@samsung.com>
Thu, 27 Jun 2019 23:47:11 +0000 (08:47 +0900)
Change-Id: I8cab50f8b57cab7445da89ede9d8639d70a47f41

ism/modules/panelagent/wayland/isf_wsc_context.h
ism/modules/panelagent/wayland/wayland_panel_agent_module.cpp

index 04df1d3..c6106f9 100644 (file)
@@ -113,7 +113,7 @@ struct _WSCContextISF {
     Eina_Bool language_initialized;
 
     Eina_Bool return_key_disabled;
-    Eina_Bool input_panel_shown;
+    Eina_Bool input_panel_shown_once;
 
     WSCContextISFImpl *impl;
 
@@ -142,7 +142,7 @@ struct _WSCContextISF {
                        autocapital_type_initialized(EINA_FALSE),
                        language_initialized(EINA_FALSE),
                        return_key_disabled(EINA_FALSE),
-                       input_panel_shown(EINA_FALSE),
+                       input_panel_shown_once(EINA_FALSE),
                        impl(NULL),
                        id(0),
                        next(NULL)
index a0fc1a1..8e7ccf4 100644 (file)
@@ -874,6 +874,7 @@ _wsc_im_deactivate (void *data, struct wl_input_method *input_method, struct wl_
         isf_wsc_context_focus_out (wsc->wsc_ctx);
         _wl_im_ctx->need_focus_event = EINA_FALSE;
     }
+    wsc->wsc_ctx->input_panel_shown_once = EINA_FALSE;
 
     if (_launch_ise_on_request)
         wl_im_destroy ();
@@ -886,7 +887,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;
+    wsc->wsc_ctx->input_panel_shown_once = EINA_TRUE;
 
     if (_TV)
         remote_surrounding_get (wsc->wsc_ctx);
@@ -899,7 +900,6 @@ _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 = {
@@ -1566,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->input_panel_shown && context_scim->impl->input_resource != INPUT_RESOURCE_REMOTE) {
+            if (context_scim->input_panel_shown_once && 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);
                 }