fix bug hide event callback is delivered when canvas lost focus and IME is already...
authorJihoon Kim <jihoon48.kim@samsung.com>
Fri, 8 Feb 2013 09:11:48 +0000 (18:11 +0900)
committerJihoon Kim <jihoon48.kim@samsung.com>
Fri, 8 Feb 2013 09:11:48 +0000 (18:11 +0900)
Change-Id: Icc2280287abcf3134e01acd61a65fb9e4bed4f3d

ism/extras/efl_immodule/isf_imf_control_ui.cpp
packaging/isf.spec

index b03d4e1..5a77b71 100644 (file)
@@ -213,8 +213,6 @@ static void _event_callback_call (Ecore_IMF_Input_Panel_Event type, int value)
 
         if ((fn) && (fn->imf_context == using_ic) &&
             (fn->type == type) && (fn->func)) {
-            fn->func (fn->data, fn->imf_context, value);
-
             switch (type) {
                 case ECORE_IMF_INPUT_PANEL_STATE_EVENT:
                     switch (value) {
@@ -248,6 +246,8 @@ static void _event_callback_call (Ecore_IMF_Input_Panel_Event type, int value)
                 default:
                     break;
             }
+
+            fn->func (fn->data, fn->imf_context, value);
         }
     }
 }
@@ -327,15 +327,15 @@ static void _input_panel_hide (Ecore_IMF_Context *ctx, Eina_Bool instant)
         _isf_imf_context_init ();
     }
 
-    if (input_panel_state == ECORE_IMF_INPUT_PANEL_STATE_SHOW) {
-        hide_req_ic = ctx;
-    }
-
     if (instant) {
-        _clear_timer ();
-        _save_hide_context_info (ctx);
-        _send_input_panel_hide_request ();
+        if (input_panel_state != ECORE_IMF_INPUT_PANEL_STATE_HIDE) {
+            hide_req_ic = ctx;
+            _clear_timer ();
+            _save_hide_context_info (ctx);
+            _send_input_panel_hide_request ();
+        }
     } else {
+        hide_req_ic = ctx;
         _input_panel_hide_timer_start (ctx);
     }
 }
index 5f019b5..e138e12 100755 (executable)
@@ -4,7 +4,7 @@
 Name:       isf
 Summary:    Input Service Framework
 Version:    2.3.6128
-Release:    2
+Release:    3
 Group:      System Environment/Libraries
 License:    LGPL
 Source0:    %{name}-%{version}.tar.gz