void InputMethodContextEfl::handleMouseUpEvent(const Evas_Event_Mouse_Up*)
{
- ecore_imf_context_reset(m_context.get());
+ resetIMFContext();
}
void InputMethodContextEfl::handleKeyDownEvent(const Evas_Event_Key_Down* downEvent, bool* isFiltered)
{
+ if (!m_context)
+ return;
+
Ecore_IMF_Event inputMethodEvent;
ecore_imf_evas_event_key_down_wrap(const_cast<Evas_Event_Key_Down*>(downEvent), &inputMethodEvent.key_down);
if (m_contextList.contains(layout)) {
revertIMFContext();
m_context = m_contextList.take(layout);
+ if (!m_context) {
+ m_context = createIMFContext(evas_object_evas_get(m_viewImpl->view()));
+ initializeIMFContext(m_context.get(), layout);
+ }
} else if (!m_context || ecore_imf_context_input_panel_layout_get(m_context.get()) != layout) {
OwnPtr<Ecore_IMF_Context> context = createIMFContext(evas_object_evas_get(m_viewImpl->view()));
if (m_context)