void InputMethodContextEfl::updateTextInputState()
{
const EditorState& editor = m_viewImpl->page()->editorState();
- if (editor.shouldIgnoreCompositionSelectionChange)
+ if (editor.shouldIgnoreCompositionSelectionChange || editor.updateEditorRectOnly)
return;
if (editor.isContentEditable && m_useInputMethod)
if (dirtyRect.isEmpty())
return;
+#if OS(TIZEN)
+ m_webPage->didChangeContents(dirtyRect);
+#endif
+
if (m_layerTreeHost) {
ASSERT(m_dirtyRegion.isEmpty());
if (!m_isPaintingEnabled)
return;
+#if OS(TIZEN)
+ m_webPage->didChangeContents(scrollRect);
+#endif
+
if (m_layerTreeHost) {
ASSERT(m_scrollRect.isEmpty());
ASSERT(m_scrollOffset.isEmpty());
frameView->forceLayout();
}
#endif
+
+void WebPage::didChangeContents(const IntRect& rect)
+{
+ Frame* frame = m_page->focusController()->focusedOrMainFrame();
+ if (!frame || !frame->view() || frame->view()->needsLayout())
+ return;
+
+#if ENABLE(TIZEN_ISF_PORT) || ENABLE(TIZEN_WEBKIT2_TEXT_SELECTION)
+ if (m_editorState.isContentEditable && rect.intersects(m_editorState.editorRect) && frame->selection()->rootEditableElement()) {
+ IntRect currentEditorRect = nodeRect(frame->selection()->rootEditableElement());
+ if (m_editorState.editorRect != currentEditorRect) {
+ m_editorState.editorRect = currentEditorRect;
+ m_editorState.updateEditorRectOnly = true;
+ send(Messages::WebPageProxy::EditorStateChanged(m_editorState));
+ }
+ }
+#endif
+}
#endif // #if OS(TIZEN)
} // namespace WebKit