[EFL][WK2] Add support for IMF composition
authorryuan.choi@samsung.com <ryuan.choi@samsung.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 23 Oct 2012 12:34:51 +0000 (12:34 +0000)
committerryuan.choi@samsung.com <ryuan.choi@samsung.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 23 Oct 2012 12:34:51 +0000 (12:34 +0000)
commita3f74e50c20e9c7bc16ef0e7ae3f2a31470f7d0b
tree785b8bd8b0313b7dfcc2d7b16870e8d79dc405b5
parent4a97aab0f1bf054a3cfe146b43084473637c124a
[EFL][WK2] Add support for IMF composition
https://bugs.webkit.org/show_bug.cgi?id=89552

Reviewed by Gyuyoung Kim.

.:

* Source/cmake/FindEcore.cmake: Checked Ecore_IMF.

Source/WebKit2:

Implemented basic IMF support.

* PlatformEfl.cmake:
* Shared/NativeWebKeyboardEvent.h:
(NativeWebKeyboardEvent):
(WebKit::NativeWebKeyboardEvent::isFiltered):
Added to determine whether current keyboard event is compositing.
* Shared/efl/NativeWebKeyboardEventEfl.cpp:
(WebKit::NativeWebKeyboardEvent::NativeWebKeyboardEvent):
* UIProcess/API/efl/PageClientImpl.cpp:
(WebKit::PageClientImpl::updateTextInputState):
Added to change input state.
* UIProcess/API/efl/PageClientImpl.h:
(PageClientImpl):
* UIProcess/API/efl/ewk_main.cpp:
(ewk_init): Called ecore_imf_init.
(ewk_shutdown): Called ecore_imf_shutdown.
* UIProcess/API/efl/ewk_view.cpp:
(_Ewk_View_Private_Data):
(_Ewk_View_Private_Data::_Ewk_View_Private_Data):
(_Ewk_View_Private_Data::~_Ewk_View_Private_Data):
(_ewk_view_smart_key_down): Modified to send keyboard event to IMF.
(_ewk_view_smart_mouse_up): Modified to reset input method context.
(_ewk_view_preedit_changed): Added to send composition string.
(_ewk_view_commit): Added to send a message that composition is finished.
(_ewk_view_imf_context_create): Added to create Ecore_IMF_Context.
(_ewk_view_imf_context_destroy): Added to destroy Ecore_IMF_Context.
(ewk_view_text_input_state_update): Added to update input state.
* UIProcess/API/efl/ewk_view_private.h:
* UIProcess/PageClient.h: Moved updateTextInputState() to share with EFL port.
(PageClient):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::editorStateChanged):
Added PLATFORM(EFL) to call updateTextInputState()
* UIProcess/WebPageProxy.h:
(WebPageProxy):
* UIProcess/WebPageProxy.messages.in:
Added HandleInputMethodKeydown message to determine whether keydown is handled.
* UIProcess/efl/WebPageProxyEfl.cpp:
(WebKit::WebPageProxy::handleInputMethodKeydown):
Added to check whether input method handled keydown.
(WebKit::WebPageProxy::confirmComposition): Added to support composition.
(WebKit::WebPageProxy::setComposition): Ditto.
(WebKit::WebPageProxy::cancelComposition): Ditto.
* WebProcess/WebCoreSupport/efl/WebEditorClientEfl.cpp:
(WebKit::WebEditorClient::handleInputMethodKeydown):
Added to check whether input method handled keydown.
* WebProcess/WebPage/WebPage.h:
(WebPage):
* WebProcess/WebPage/WebPage.messages.in: Added messages to support composition.
* WebProcess/WebPage/efl/WebPageEfl.cpp:
(WebKit::targetFrameForEditing): Referenced from QT port to get focused frame.
(WebKit::WebPage::confirmComposition): Added to support composition.
(WebKit::WebPage::setComposition): Ditto.
(WebKit::WebPage::cancelComposition): Ditto.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@132210 268f45cc-cd09-0410-ab3c-d52691b4dbfc
20 files changed:
ChangeLog
Source/WebKit2/ChangeLog
Source/WebKit2/PlatformEfl.cmake
Source/WebKit2/Shared/NativeWebKeyboardEvent.h
Source/WebKit2/Shared/efl/NativeWebKeyboardEventEfl.cpp
Source/WebKit2/UIProcess/API/efl/PageClientImpl.cpp
Source/WebKit2/UIProcess/API/efl/PageClientImpl.h
Source/WebKit2/UIProcess/API/efl/ewk_main.cpp
Source/WebKit2/UIProcess/API/efl/ewk_view.cpp
Source/WebKit2/UIProcess/API/efl/ewk_view_private.h
Source/WebKit2/UIProcess/PageClient.h
Source/WebKit2/UIProcess/WebPageProxy.cpp
Source/WebKit2/UIProcess/WebPageProxy.h
Source/WebKit2/UIProcess/WebPageProxy.messages.in
Source/WebKit2/UIProcess/efl/WebPageProxyEfl.cpp
Source/WebKit2/WebProcess/WebCoreSupport/efl/WebEditorClientEfl.cpp
Source/WebKit2/WebProcess/WebPage/WebPage.h
Source/WebKit2/WebProcess/WebPage/WebPage.messages.in
Source/WebKit2/WebProcess/WebPage/efl/WebPageEfl.cpp
Source/cmake/FindEcore.cmake