Check focus event flag in wl_input_method_listener 72/110572/1
authorInHong Han <inhong1.han@samsung.com>
Tue, 17 Jan 2017 00:59:43 +0000 (09:59 +0900)
committerInHong Han <inhong1.han@samsung.com>
Tue, 17 Jan 2017 05:23:40 +0000 (14:23 +0900)
Unnecessary focus event occurred when calling the hide_input_panel() after
the focus_out event is called.
Change-Id: I2323d81d25ef870c0a87ae6b5e53af25f1576f4b

ism/modules/panelagent/wayland/wayland_panel_agent_module.cpp

index 0e5b792..4243e49 100644 (file)
@@ -616,7 +616,7 @@ static const struct wl_keyboard_listener wsc_im_keyboard_listener = {
 #endif
 
 static void
-_wsc_im_activate (void *data, struct wl_input_method *input_method, struct wl_input_method_context *im_ctx, uint32_t text_input_id)
+_wsc_im_activate (void *data, struct wl_input_method *input_method, struct wl_input_method_context *im_ctx, uint32_t text_input_id, uint32_t focus_in_event)
 {
     struct weescim *wsc = (weescim*)data;
     if (!wsc) return;
@@ -666,17 +666,19 @@ _wsc_im_activate (void *data, struct wl_input_method *input_method, struct wl_in
 
     isf_wsc_context_add (wsc_ctx);
 
-    isf_wsc_context_focus_in (wsc_ctx);
+    if (focus_in_event)
+        isf_wsc_context_focus_in (wsc_ctx);
 }
 
 static void
-_wsc_im_deactivate (void *data, struct wl_input_method *input_method, struct wl_input_method_context *im_ctx)
+_wsc_im_deactivate (void *data, struct wl_input_method *input_method, struct wl_input_method_context *im_ctx, uint32_t focus_out_event)
 {
     struct weescim *wsc = (weescim*)data;
     if (!wsc || !wsc->wsc_ctx) return;
     WSCContextISF *wsc_ctx = wsc->wsc_ctx;
 
-    isf_wsc_context_focus_out (wsc_ctx);
+    if (focus_out_event)
+        isf_wsc_context_focus_out (wsc_ctx);
 
 #if ENABLE_GRAB_KEYBOARD
     if (wsc_ctx->keyboard) {