Set input method state when webpage move by history
authorSangYong Park <sy302.park@samsung.com>
Mon, 20 May 2013 09:14:11 +0000 (18:14 +0900)
committerGerrit Code Review <gerrit2@kim11>
Wed, 22 May 2013 11:37:22 +0000 (20:37 +0900)
[Title] Set input method state when webpage move by history
[Issue#] N_SE-38778
[Problem] Keypad do not showing after history back
[Cause] Input method state was wrong
[Solution] Set input method state when webpage move by history

Change-Id: Ie64c2313a7b3edb7b355190b0f652d6f083fe1cf

Source/WebCore/loader/HistoryController.cpp [changed mode: 0644->0755]

old mode 100644 (file)
new mode 100755 (executable)
index 0a44bf3..e3847b8
 #include "VisitedLinkStrategy.h"
 #endif
 
+#if ENABLE(TIZEN_ISF_PORT)
+#include "EditorClient.h"
+#include "FocusController.h"
+#endif
+
 namespace WebCore {
 
 static inline void addVisitedLink(Page* page, const KURL& url)
@@ -285,6 +290,11 @@ void HistoryController::goToItem(HistoryItem* targetItem, FrameLoadType type)
     recursiveSetProvisionalItem(targetItem, currentItem.get(), type);
     // Now that all other frames have provisional items, do the actual navigation.
     recursiveGoToItem(targetItem, currentItem.get(), type);
+
+#if ENABLE(TIZEN_ISF_PORT)
+    if (page->mainFrame() == m_frame && !targetItem->shouldDoSameDocumentNavigationTo(currentItem.get()))
+        page->editorClient()->setInputMethodState(page->focusController()->focusedOrMainFrame()->document()->focusedNode());
+#endif
 }
 
 void HistoryController::setDefersLoading(bool defer)