hermet pushed a commit to branch master.

commit a23ece02951d8d1f761227f0362cf1c5c57eb65e
Author: ChunEon Park <[email protected]>
Date:   Sat Jul 13 18:58:30 2013 +0900

    elementry/entry - Change the keyboard mode only if the imf is not available.
    If the imf is available, the keyboard mode should be decided by ime, but not
    entry. This prevents the asynchorouse states between ime and conformant.
---
 ChangeLog           | 7 +++++++
 NEWS                | 3 +++
 src/lib/elm_entry.c | 6 ++++--
 3 files changed, 14 insertions(+), 2 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 1a454be..cb25155 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1503,3 +1503,10 @@
 2013-07-13  Daniel Juyung Seo
 
         * Fix elm_object_item_part_content_set bug with end content in 
elm_list.
+
+2013-07-14  ChunEon Park (Hermet)
+
+        * Entry : Change the keyboard mode only if the imf is not available. If
+        the imf is available, the keyboard mode should be decided by ime, but
+        not entry. This prevents the asynchronous states between ime and
+        conformant.
diff --git a/NEWS b/NEWS
index fd0450f..4624a5b 100644
--- a/NEWS
+++ b/NEWS
@@ -261,6 +261,9 @@ Fixes:
    * Fix Segfault in elementary file_selector_example when closed
    * Fix Showing multiple popups in Entry.
    * Fix elm_object_item_part_content_set bug with end content in elm_list.
+   * Entry: Change the keyboard mode only if the imf is not available. If the
+   imf is available, the keyboard mode should be decided by ime, but not entry.
+   This prevents the asynchronous states between ime and conformant.
 
 Removals:
 
diff --git a/src/lib/elm_entry.c b/src/lib/elm_entry.c
index d937d12..5ae4e1b 100644
--- a/src/lib/elm_entry.c
+++ b/src/lib/elm_entry.c
@@ -858,7 +858,8 @@ _elm_entry_smart_on_focus(Eo *obj, void *_pd EINA_UNUSED, 
va_list *list)
      {
         evas_object_focus_set(sd->entry_edje, EINA_TRUE);
         edje_object_signal_emit(sd->entry_edje, "elm,action,focus", "elm");
-        if (top && top_is_win && sd->input_panel_enable)
+        if (top && top_is_win && sd->input_panel_enable &&
+            !edje_object_part_text_imf_context_get(sd->entry_edje, "elm.text"))
           elm_win_keyboard_mode_set(top, ELM_WIN_KEYBOARD_ON);
         evas_object_smart_callback_call(obj, SIG_FOCUSED, NULL);
         _return_key_enabled_check(obj);
@@ -867,7 +868,8 @@ _elm_entry_smart_on_focus(Eo *obj, void *_pd EINA_UNUSED, 
va_list *list)
      {
         edje_object_signal_emit(sd->entry_edje, "elm,action,unfocus", "elm");
         evas_object_focus_set(sd->entry_edje, EINA_FALSE);
-        if (top && top_is_win && sd->input_panel_enable)
+        if (top && top_is_win && sd->input_panel_enable &&
+            !edje_object_part_text_imf_context_get(sd->entry_edje, "elm.text"))
           elm_win_keyboard_mode_set(top, ELM_WIN_KEYBOARD_OFF);
         evas_object_smart_callback_call(obj, SIG_UNFOCUSED, NULL);
 

-- 

------------------------------------------------------------------------------
See everything from the browser to the database with AppDynamics
Get end-to-end visibility with application monitoring from AppDynamics
Isolate bottlenecks and diagnose root cause in seconds.
Start your free trial of AppDynamics Pro today!
http://pubads.g.doubleclick.net/gampad/clk?id=48808831&iu=/4140/ostg.clktrk

Reply via email to