X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=Source%2FWebKit2%2FUIProcess%2FAPI%2Fefl%2Ftizen%2FTextSelection.cpp;h=138368dea1c8de9c26a4dd53113b72a07bfd18d7;hb=f443518988627a1924f9a58474c47ad61c71aa7f;hp=d961829f87e7b72742b5002cc01a7129dc649fcd;hpb=d298caf03684753b1cb39ec78d629c95978d9d2e;p=framework%2Fweb%2Fwebkit-efl.git diff --git a/Source/WebKit2/UIProcess/API/efl/tizen/TextSelection.cpp b/Source/WebKit2/UIProcess/API/efl/tizen/TextSelection.cpp index d961829..138368d 100755 --- a/Source/WebKit2/UIProcess/API/efl/tizen/TextSelection.cpp +++ b/Source/WebKit2/UIProcess/API/efl/tizen/TextSelection.cpp @@ -208,8 +208,8 @@ void TextSelection::updateHandlers() if (!m_viewImpl->page()->getSelectionHandlers(leftRect, rightRect, selectionDirection)) return; - m_lastLeftHandleRect = leftRect; - m_lastRightHandleRect = rightRect; + m_lastLeftHandleRect = m_viewImpl->transformToScene().mapRect(leftRect); + m_lastRightHandleRect = m_viewImpl->transformToScene().mapRect(rightRect); AffineTransform toEvasTransform = m_viewImpl->transformToScene(); WebCore::IntPoint leftEvasPoint ; @@ -551,6 +551,9 @@ void TextSelection::updateHandlesAndContextMenu(bool isShow, bool isScrolling) if (m_viewImpl->gestureClient->isGestureWorking()) return; + if (m_showTimer) + return; + updateHandlers(); showContextMenu(); } else { @@ -777,6 +780,12 @@ bool TextSelection::isAutomaticClearEnabled() void TextSelection::requestToShow() { + EditorState editorState = m_viewImpl->page()->editorState(); + if (!editorState.selectionIsRange && editorState.isContentEditable) { + setIsTextSelectionMode(false); + return; + } + if (m_showTimer) ecore_timer_del(m_showTimer); m_showTimer = ecore_timer_loop_add((double)200.0/1000.0, showTimerCallback, this); @@ -795,6 +804,8 @@ void TextSelection::showHandlesAndContextMenu() WebCore::IntRect leftRect, rightRect; int selectionDirection = LToR; if (m_viewImpl->page()->getSelectionHandlers(leftRect, rightRect, selectionDirection)) { + leftRect = m_viewImpl->transformToScene().mapRect(leftRect); + rightRect = m_viewImpl->transformToScene().mapRect(rightRect); if ((leftRect == m_lastLeftHandleRect) && (rightRect == m_lastRightHandleRect)) { if (m_showTimer) { ecore_timer_del(m_showTimer);