When long tap on other input box, endTap() is performed.
authorYuni Jeong <yhnet.jung@samsung.com>
Wed, 3 Jul 2013 05:30:56 +0000 (14:30 +0900)
committerYuni Jeong <yhnet.jung@samsung.com>
Wed, 3 Jul 2013 07:42:46 +0000 (16:42 +0900)
[Title] When long tap on other input box, endTap() is performed.
[Issue#] N/A
[Problem] User long tap on an input box and then, when long tap on other input box,
          Magnifier is displayed above previous input box.
[Cause] Magnifier is displayed above rootEditableElement that has caret
        bacause there is caret in previous input box.
        So, this issue occur.
[Solution] When long tap on other input box, textSelectionDown() return false.
           If textSelectionDown() return false, endTap() for other input box is performed.

Change-Id: Ia25f1f0b2878b5aa1d0a14059d1d428731e2af01

Source/WebKit2/WebProcess/WebPage/efl/WebPageEfl.cpp

index 9e7c10d..56a46ec 100755 (executable)
@@ -586,6 +586,11 @@ bool WebPage::setCaretPosition(const IntPoint& pos)
         if (!node || !node->renderer())
             return false;
 
+        Element* currentRootEditableElement = node->rootEditableElement();
+        Element* newRootEditableElement = innerNode->rootEditableElement();
+        if (currentRootEditableElement != newRootEditableElement)
+            return false;
+
         IntRect rect = controller->caretRenderer()->absoluteBoundingBoxRect(true);
 
         // The below wirtten code is not correct way to implement. Presntly the is no