From: Jihoon Kim Date: Thu, 10 Oct 2013 06:26:26 +0000 (+0900) Subject: fix bug candidate window disappears late X-Git-Tag: accepted/tizen/generic/20140310.074606~31 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=2d9ee0179483e872418ceb03dba92555d4b1d016;p=platform%2Fcore%2Fuifw%2Fisf.git fix bug candidate window disappears late Patched by Haifeng deng Change-Id: I8e35a47f9edc45612cf6dcaa3fd8ab64eac02607 --- diff --git a/ism/extras/efl_immodule/isf_imf_context.cpp b/ism/extras/efl_immodule/isf_imf_context.cpp index 8099629..caa106e 100644 --- a/ism/extras/efl_immodule/isf_imf_context.cpp +++ b/ism/extras/efl_immodule/isf_imf_context.cpp @@ -1315,6 +1315,9 @@ isf_imf_context_focus_in (Ecore_IMF_Context *ctx) ecore_imf_context_input_panel_show (ctx); else LOGD ("ctx : %p input panel enable : FALSE\n", ctx); + + if (hw_keyboard_num_get () > 0) + clear_hide_request (); } /** diff --git a/ism/extras/efl_immodule/isf_imf_control_ui.cpp b/ism/extras/efl_immodule/isf_imf_control_ui.cpp index c8174ba..6ca2319 100644 --- a/ism/extras/efl_immodule/isf_imf_control_ui.cpp +++ b/ism/extras/efl_immodule/isf_imf_control_ui.cpp @@ -207,6 +207,14 @@ void save_current_xid (Ecore_IMF_Context *ctx) ecore_x_sync (); } +void clear_hide_request () +{ + if (_clear_hide_timer ()) { + hide_req_ic = NULL; + } + will_hide = EINA_FALSE; +} + static void _event_callback_call (Ecore_IMF_Input_Panel_Event type, int value) { Ecore_IMF_Context *using_ic = get_using_ic (type, value); diff --git a/ism/extras/efl_immodule/isf_imf_control_ui.h b/ism/extras/efl_immodule/isf_imf_control_ui.h index 1c5b589..8125605 100644 --- a/ism/extras/efl_immodule/isf_imf_control_ui.h +++ b/ism/extras/efl_immodule/isf_imf_control_ui.h @@ -36,6 +36,7 @@ extern "C" bool process_update_input_context (int type, int value); Ecore_IMF_Context *get_using_ic (Ecore_IMF_Input_Panel_Event type, int value); void save_current_xid (Ecore_IMF_Context *ctx); + void clear_hide_request (); void isf_imf_input_panel_init (); void isf_imf_input_panel_shutdown (); diff --git a/ism/extras/efl_panel/isf_panel_efl.cpp b/ism/extras/efl_panel/isf_panel_efl.cpp index 9adfd55..81b5922 100644 --- a/ism/extras/efl_panel/isf_panel_efl.cpp +++ b/ism/extras/efl_panel/isf_panel_efl.cpp @@ -3864,6 +3864,12 @@ static void slot_hide_ise (void) _ise_state = WINDOW_STATE_WILL_HIDE; } _window_angle = -1; + + if (_candidate_window) { + int hw_kbd_detect = _config->read (ISF_CONFIG_HARDWARE_KEYBOARD_DETECT, 0); + if (hw_kbd_detect) + ui_candidate_hide (true, true, true); + } } static void slot_will_hide_ack (void)