From 3a4f4cf6121cfbb1b2600de2269604519b7855a1 Mon Sep 17 00:00:00 2001 From: InHong Han Date: Tue, 17 Jan 2017 09:59:43 +0900 Subject: [PATCH] Check focus event flag in wl_input_method_listener 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 | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/ism/modules/panelagent/wayland/wayland_panel_agent_module.cpp b/ism/modules/panelagent/wayland/wayland_panel_agent_module.cpp index 0e5b792..4243e49 100644 --- a/ism/modules/panelagent/wayland/wayland_panel_agent_module.cpp +++ b/ism/modules/panelagent/wayland/wayland_panel_agent_module.cpp @@ -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) { -- 2.7.4