check whether input panel can be hidden when hide request is called
authorJihoon Kim <jihoon48.kim@samsung.com>
Tue, 5 Apr 2011 10:47:16 +0000 (19:47 +0900)
committerJihoon Kim <jihoon48.kim@samsung.com>
Tue, 5 Apr 2011 10:47:16 +0000 (19:47 +0900)
src/lib/edje_entry.c

index 7262580..3b714fe 100644 (file)
@@ -178,14 +178,32 @@ _caps_mode_check(Entry *en)
 
 #ifdef HAVE_ECORE_IMF
 static void
-_input_panel_hide(Ecore_IMF_Context *ctx)
+_input_panel_hide(Entry *en)
 {
    Ecore_IMF_Input_Panel_State state;
 
-   state = ecore_imf_context_input_panel_state_get(ctx);
+   if (!en || !en->input_panel_enable || !en->imf_context) return;
+
+   state = ecore_imf_context_input_panel_state_get(en->imf_context);
 
    if (state == ECORE_IMF_INPUT_PANEL_STATE_SHOW)
-      ecore_imf_context_input_panel_hide(ctx);
+      ecore_imf_context_input_panel_hide(en->imf_context);
+}
+
+static void
+_input_panel_show(Entry *en)
+{
+   if (!en || !en->input_panel_enable) return;
+
+   if (hide_timer)
+     {
+        ecore_timer_del(hide_timer);
+        hide_timer = NULL;
+     }
+
+   if(!en->imf_context) return;
+   ecore_imf_context_input_panel_show(en->imf_context);
+   focused_entry = en;
 }
 
 static Eina_Bool _hide_timer_handler(void *data)
@@ -193,7 +211,7 @@ static Eina_Bool _hide_timer_handler(void *data)
    Entry *en = (Entry *)data;
    if (!en || !en->imf_context) goto done;
 
-   _input_panel_hide(en->imf_context);
+   _input_panel_hide(en);
 
 done:
    hide_timer = NULL;
@@ -213,22 +231,6 @@ _input_panel_hide_timer_start(Entry *en)
 }
 
 static void
-_input_panel_show(Entry *en)
-{
-   if (!en || !en->input_panel_enable) return;
-
-   if (hide_timer)
-     {
-        ecore_timer_del(hide_timer);
-        hide_timer = NULL;
-     }
-
-   if(!en->imf_context) return;
-   ecore_imf_context_input_panel_show(en->imf_context);
-   focused_entry = en;
-}
-
-static void
 _preedit_clear(Entry *en)
 {
    if (en->preedit_start)
@@ -621,7 +623,7 @@ _sel_extend(Evas_Textblock_Cursor *c, Evas_Object *o, Entry *en)
    ecore_imf_context_reset(en->imf_context);
 
    if (en->input_panel_enable)
-      _input_panel_hide(en->imf_context);
+      _input_panel_hide(en);
 #endif
 }
 
@@ -652,7 +654,7 @@ _sel_preextend(Evas_Textblock_Cursor *c, Evas_Object *o, Entry *en)
 
    if (en->input_panel_enable)
      {
-        _input_panel_hide(en->imf_context);
+        _input_panel_hide(en);
      }
 #endif
 }