#if ENABLE(TIZEN_PRERENDERING_FOR_ROTATION)
, m_waitFrameOfNewViewortSize(false)
#endif
+#if ENABLE(TIZEN_WEBKIT2_INPUT_FIELD_ZOOM)
+ ,m_needFocusAdjust(false)
+#endif
, m_nonemptyLayoutRendered(false)
#endif // #if OS(TIZEN)
{
return;
// if IME is opened, visible content rect will be updated by ewk_view_focused_node_adjust()
- if (ewk_view_focused_node_adjust(m_viewImpl->view()))
- return;
+#if ENABLE(TIZEN_WEBKIT2_INPUT_FIELD_ZOOM)
+ if (m_needFocusAdjust) {
+ m_needFocusAdjust = false;
+ if (ewk_view_focused_node_adjust(m_viewImpl->view()))
+ return;
+ }
+#endif
float newScale = scaleFactor();
IntPoint newScrollPosition = m_visibleContentRect.location();
bool canUpdateVisibleContentRect();
bool notifiedNonemptyLayout() { return m_nonemptyLayoutRendered; }
+
+#if ENABLE(TIZEN_WEBKIT2_INPUT_FIELD_ZOOM)
+ void setNeedFocusAdjust(bool needFocusAdjust) { m_needFocusAdjust = needFocusAdjust; }
+#endif
+
#endif // #if OS(TIZEN)
private:
bool m_waitFrameOfNewViewortSize;
#endif
+#if ENABLE(TIZEN_WEBKIT2_INPUT_FIELD_ZOOM)
+ bool m_needFocusAdjust;
+#endif
+
bool m_nonemptyLayoutRendered;
#endif // #if OS(TIZEN)
};
*maximumScale = constraints.maximumScale;
}
-bool ewk_view_focused_node_adjust(Evas_Object* ewkView, Eina_Bool adjustForExternalKeyboard)
+bool ewk_view_focused_node_adjust(Evas_Object* ewkView, Eina_Bool adjustForExternalKeyboard, Eina_Bool adjustForContentSizeChanged)
{
EWK_VIEW_SD_GET_OR_RETURN(ewkView, smartData, false);
EWK_VIEW_IMPL_GET_OR_RETURN(smartData, impl, false);
if ((!(static_cast<PageClient*>(impl->pageClient.get()))->isViewFocused()
|| (!adjustForExternalKeyboard && !impl->inputMethodContext())
- || (!adjustForExternalKeyboard && !impl->inputMethodContext()->isShow()))
+ || (!adjustForContentSizeChanged && impl->pageProxy->editorState().isContentRichlyEditable)
+ || (adjustForContentSizeChanged && !impl->inputMethodContext()->isShow()))
#if ENABLE(TIZEN_WEBKIT2_CONTEXT_MENU_CLIPBOARD)
&& !(impl->pageClient->isClipboardWindowOpened())
#endif
return false;
#if ENABLE(TIZEN_WEBKIT2_INPUT_FIELD_ZOOM)
- impl->inputFieldZoom->startInputFieldZoom(impl->transformFromScene().mapPoint(IntPoint(focusedNodeRect.x(), focusedNodeRect.y())) ,focusedNodeRect);
+ impl->inputFieldZoom->startInputFieldZoom(impl->transformFromScene().mapPoint(IntPoint(selectionRect.x(), selectionRect.y()))
+ , IntRect(focusedNodeRect.x(), selectionRect.y(), focusedNodeRect.width(), selectionRect.height()));
#endif
return true;
typedef struct _Ewk_Geolocation Ewk_Geolocation;
#endif
-bool ewk_view_focused_node_adjust(Evas_Object* object, Eina_Bool adjustForExternalKeyboard = EINA_FALSE);
+bool ewk_view_focused_node_adjust(Evas_Object* object, Eina_Bool adjustForExternalKeyboard = EINA_FALSE, Eina_Bool adjustForContentSizeChanged = EINA_FALSE);
void ewk_view_touch_event_handler_result_set(Evas_Object* ewkView, WebKit::WebEvent::Type type, bool wasHandled);
#if ENABLE(TIZEN_WEBKIT2_TILED_AC)
ewk_view_focused_node_adjust(m_viewImpl->view(), EINA_TRUE);
else {
if (isShow())
- ewk_view_focused_node_adjust(m_viewImpl->view(), EINA_FALSE);
+ ewk_view_focused_node_adjust(m_viewImpl->view());
+#if ENABLE(TIZEN_WEBKIT2_INPUT_FIELD_ZOOM)
+ else
+ m_viewImpl->pageClient->setNeedFocusAdjust(true);
+#endif
}
resetIMFContext();