Page is not resized if select picker menu hides item on page.
So we need to add function for auto-scroll after
"OnInputPanelStateChanged" and "HandleResize".
BUG: http://107.108.218.239/bugzilla/show_bug.cgi?id=10843
Reviewed by: Hyunhak Kim, Piotr Grad
Change-Id: I2ad0a1e4830c8ead519feac10213baf9aa3a7d81
Signed-off-by: Dongjun Kim <djmix.kim@samsung.com>
if (state == ECORE_IMF_INPUT_PANEL_STATE_SHOW) {
IM_CTX_LOG << ": show";
view_->eweb_view()->SmartCallback<EWebViewCallbacks::IMEInputPanelShow>().call();
+ view_->eweb_view()->ScrollFocusedEditableNode();
+
} else if (state == ECORE_IMF_INPUT_PANEL_STATE_HIDE) {
IM_CTX_LOG << ": hide";
view_->eweb_view()->SmartCallback<EWebViewCallbacks::IMEInputPanelHide>().call();
return context_ && is_focused_ && IsIMFVisible(context_);
}
+bool IMContextEfl::IsImePanelVisible() {
+ return context_ && IsIMFVisible(context_);
+}
+
void IMContextEfl::ClearQueues() {
while (!commit_queue_.empty()) {
commit_queue_.pop();
return NULL;
return RenderWidgetHostImpl::From(rwh);
}
-
} // namespace content
void ConfirmComposition();
void SetIsInFormTag(bool is_in_form_tag);
bool IsShow();
+ bool IsImePanelVisible();
gfx::Rect GetIMERect() const { return ime_rect_; }
void SetIMERect(const gfx::Rect& rect) { ime_rect_ = rect; }
CommitQueue GetCommitQueue() { return commit_queue_; }
if (web_view_)
web_view_->QuerySelectionStyle();
-
- if (params.show_ime_if_needed) {
- // The empty rect is not used as long as
- // m_autoZoomFocusedNodeToLegibleScale in WebSettingsImpl
- // is turned on
- host_->ScrollFocusedEditableNodeIntoRect(gfx::Rect(0, 0, 0, 0));
- }
}
if (GetSelectionController()) {
// Have to use UpdateScreenInfo(GetNativeView()); when real native surface is used.
UpdateScreenInfo(GetNativeView());
host_->WasResized();
+
+ if (im_context_ && im_context_->IsImePanelVisible())
+ ScrollFocusedEditableNode();
}
void RenderWidgetHostViewEfl::HandleFocusIn() {
gfx::Vector2d RenderWidgetHostViewEfl::scroll_offset() const {
return scroll_detector_->GetLastScrollPosition();
}
+
+void RenderWidgetHostViewEfl::ScrollFocusedEditableNode() {
+ host_->ScrollFocusedEditableNodeIntoRect(gfx::Rect(0, 0, 0, 0));
+}
+
} // namespace content
void DetectContentOnPosition(int x, int y);
#endif
+ void ScrollFocusedEditableNode();
+
protected:
friend class RenderWidgetHostView;
return gfx::Rect();
}
+void EWebView::ScrollFocusedEditableNode() {
+ if (rwhv())
+ rwhv()->ScrollFocusedEditableNode();
+}
+
void EWebView::LoadNotFoundErrorPage(const std::string& invalidUrl) {
RenderViewHost* render_view_host = web_contents_->GetRenderViewHost();
if (render_view_host)
bool IsIMEShow();
gfx::Rect GetIMERect();
+ void ScrollFocusedEditableNode();
// Returns TCP port number with Inspector, or 0 if error.
int StartInspectorServer(int port = 0);