InputMethodContextEfl* inputMethodContext = m_viewImpl->inputMethodContext();
if (inputMethodContext) {
- bool isIMEShow = inputMethodContext->isShow();
+ bool isIMEShow = InputMethodContextEfl::isSystemKeypadShow();
int isIMEState = inputMethodContext->state();
- if (!isIMEShow && isIMEState == ECORE_IMF_INPUT_PANEL_STATE_WILL_SHOW) {
+ if (!isIMEShow && (isIMEState == ECORE_IMF_INPUT_PANEL_STATE_WILL_SHOW)) {
requestToShow();
return;
}
pages[i]->setFocusUIEnabled(false);
}
#endif
- } else {
+ } else if (propertyEvent->atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_STATE) {
if (ecore_x_e_virtual_keyboard_state_get(propertyEvent->win) == ECORE_X_VIRTUAL_KEYBOARD_STATE_ON)
s_isSystemKeypadShow = true;
else
ecore_imf_context_focus_in(m_context.get());
ecore_imf_context_input_panel_show(m_context.get());
- setState(ECORE_IMF_INPUT_PANEL_STATE_WILL_SHOW);
+ if (!isSystemKeypadShow())
+ setState(ECORE_IMF_INPUT_PANEL_STATE_WILL_SHOW);
}
void InputMethodContextEfl::onFocusOut()
resetIMFContext();
ecore_imf_context_focus_in(m_context.get());
ecore_imf_context_input_panel_show(m_context.get());
- setState(ECORE_IMF_INPUT_PANEL_STATE_WILL_SHOW);
+ if (!isSystemKeypadShow())
+ setState(ECORE_IMF_INPUT_PANEL_STATE_WILL_SHOW);
}
void InputMethodContextEfl::hideIMFContext()