From 2753fe1ae8198cfdc4c0a47156b94ec1621b64cd Mon Sep 17 00:00:00 2001 From: Baptiste DURAND Date: Thu, 19 Dec 2013 15:30:01 +0100 Subject: [PATCH] Add pointer test on IMFcontext before use pointer. Sometime when the virtual keyboard is supposed to appear, webkit tries to use a NULL pointer as context. Change-Id: Ic723726b6f0859c2ca9739fcaa32d243a379366e Signed-off-by: Baptiste DURAND --- Source/WebKit2/UIProcess/efl/InputMethodContextEfl.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/Source/WebKit2/UIProcess/efl/InputMethodContextEfl.cpp b/Source/WebKit2/UIProcess/efl/InputMethodContextEfl.cpp index 5c25dc7..31300a6 100755 --- a/Source/WebKit2/UIProcess/efl/InputMethodContextEfl.cpp +++ b/Source/WebKit2/UIProcess/efl/InputMethodContextEfl.cpp @@ -310,11 +310,14 @@ PassOwnPtr InputMethodContextEfl::createIMFContext(Evas* canv 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(downEvent), &inputMethodEvent.key_down); @@ -407,6 +410,10 @@ void InputMethodContextEfl::setIMFContext(Ecore_IMF_Input_Panel_Layout layout, c 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 context = createIMFContext(evas_object_evas_get(m_viewImpl->view())); if (m_context) -- 2.7.4