Fix keypad issue that do not disappear
authorSangYong Park <sy302.park@samsung.com>
Fri, 12 Apr 2013 06:50:13 +0000 (15:50 +0900)
committerSangYong Park <sy302.park@samsung.com>
Fri, 12 Apr 2013 06:54:13 +0000 (15:54 +0900)
[Title] Fix keypad issue that do not disappear
[Issue#] S1-13531
[Problem] Keypad do not disappear after enter key
[Cause] A condition to determine enter key was wrong
[Solution] modify condition code to determine enter key

Change-Id: I86a75f237a527871625357468212a39fcd1086ad

Source/WebKit2/UIProcess/WebPageProxy.cpp
Source/WebKit2/UIProcess/efl/PageUIClientEfl.cpp

index e8fa9cd..8be100d 100755 (executable)
@@ -3806,20 +3806,11 @@ void WebPageProxy::didReceiveEvent(uint32_t opaqueType, bool handled)
 
 #if ENABLE(TIZEN_WEBKIT2_ROTATION_WHILE_JAVASCRIPT_POPUP)
         QueuedUIEvents<NativeWebKeyboardEvent> queuedEvents = m_keyEventQueue.first();
-        MESSAGE_CHECK(type == queuedEvents.forwardedEvent.type());
+        NativeWebKeyboardEvent event = queuedEvents.forwardedEvent;
+        MESSAGE_CHECK(type == event.type());
         m_keyEventQueue.removeFirst();
 
-        m_pageClient->doneWithKeyEvent(queuedEvents.forwardedEvent, handled);
-
-        if (!handled) {
-            if (m_uiClient.implementsDidNotHandleKeyEvent())
-                m_uiClient.didNotHandleKeyEvent(this, queuedEvents.forwardedEvent);
-#if PLATFORM(WIN)
-            else
-                ::TranslateMessage(queuedEvents.forwardedEvent.nativeEvent());
-#endif
-        }
-
+        m_pageClient->doneWithKeyEvent(event, handled);
         for (size_t i = 0; i < queuedEvents.deferredEvents.size(); ++i) {
             bool isEventHandled = false;
             m_pageClient->doneWithKeyEvent(queuedEvents.deferredEvents.at(i), isEventHandled);
@@ -3834,16 +3825,23 @@ void WebPageProxy::didReceiveEvent(uint32_t opaqueType, bool handled)
             process()->send(Messages::WebPage::KeyEvent(m_keyEventQueue.first()), m_pageID);
 
         m_pageClient->doneWithKeyEvent(event, handled);
+#endif // #if ENABLE(TIZEN_WEBKIT2_ROTATION_WHILE_JAVASCRIPT_POPUP)
+
         if (handled)
             break;
 
+#if ENABLE(TIZEN_ISF_PORT)
+        InputMethodContextEfl* inputMethodContext = static_cast<PageClientImpl*>(m_pageClient)->viewImpl()->inputMethodContext();
+        if (inputMethodContext && event.keyIdentifier() == "Enter" && inputMethodContext->autoCapitalType() == ECORE_IMF_AUTOCAPITAL_TYPE_NONE)
+            inputMethodContext->hideIMFContext();
+#endif
+
         if (m_uiClient.implementsDidNotHandleKeyEvent())
             m_uiClient.didNotHandleKeyEvent(this, event);
 #if PLATFORM(WIN)
         else
             ::TranslateMessage(event.nativeEvent());
 #endif
-#endif // #if ENABLE(TIZEN_WEBKIT2_ROTATION_WHILE_JAVASCRIPT_POPUP)
         break;
     }
 #if ENABLE(TOUCH_EVENTS)
index 8567dd8..48d9454 100755 (executable)
 #include "ewk_notification_private.h"
 #include "ewk_view_private.h"
 #include "ewk_view.h"
-
-#if ENABLE(TIZEN_ISF_PORT)
-#include "NativeWebKeyboardEvent.h"
-#endif
 #endif
 
 namespace WebKit {
@@ -168,24 +164,6 @@ void PageUIClientEfl::setWindowFrame(WKPageRef, WKRect frame, const void* client
 }
 
 #if OS(TIZEN)
-#if ENABLE(TIZEN_ISF_PORT)
-void PageUIClientEfl::didNotHandleKeyEvent(WKPageRef page, WKNativeEventPtr event, const void* clientInfo)
-{
-    EwkViewImpl* viewImpl = toPageUIClientEfl(clientInfo)->m_viewImpl;
-    InputMethodContextEfl* inputMethodContext = viewImpl->inputMethodContext();
-
-    if (!inputMethodContext)
-        return;
-
-    const EvasImfEvent* keyEvent = static_cast<const EvasImfEvent*>(event);
-    if (!keyEvent || keyEvent->type != ECORE_IMF_EVENT_KEY_UP || keyEvent->event.key_up.string[0] != '\r')
-        return;
-
-    if (inputMethodContext->autoCapitalType() == ECORE_IMF_AUTOCAPITAL_TYPE_NONE)
-        inputMethodContext->hideIMFContext();
-}
-#endif
-
 #if ENABLE(TIZEN_SUPPORT_BEFORE_UNLOAD_CONFIRM_PANEL)
 bool PageUIClientEfl::runBeforeUnloadConfirmPanel(WKPageRef, WKStringRef message, WKFrameRef, const void* clientInfo)
 {
@@ -255,9 +233,6 @@ PageUIClientEfl::PageUIClientEfl(EwkViewImpl* viewImpl)
 #endif
 
 #if OS(TIZEN)
-#if ENABLE(TIZEN_ISF_PORT)
-    uiClient.didNotHandleKeyEvent = didNotHandleKeyEvent;
-#endif
 #if ENABLE(TIZEN_SUPPORT_BEFORE_UNLOAD_CONFIRM_PANEL)
     uiClient.runBeforeUnloadConfirmPanel = runBeforeUnloadConfirmPanel;
 #endif