[Title] Enable input field zoom on user scalable contents even caret is visible
[Issue#] N_SE-39317
[Problem] Caret position is placed right side on webview
[Cause] Scroll position is not updated on input field zooming if caret is visible
[Solution] Update scroll position if content is user scalable
Change-Id: I705c6cdb2ca6b7ee184300ad134c4b30f5460e50
#if ENABLE(TIZEN_WEBKIT2_FORM_DATABASE)
#include "FormDataCandidate.h"
#endif
+using std::numeric_limits;
#endif // #if OS(TIZEN)
class EwkViewImpl;
WebCore::IntSize layoutSize;
};
+ bool userScalable() { return fabs(m_viewportConstraints.minimumScale - m_viewportConstraints.maximumScale) > numeric_limits<float>::epsilon(); }
ViewportConstraints viewportConstraints() { return m_viewportConstraints; }
ViewportConstraints computeViewportConstraints(const WebCore::ViewportAttributes&);
double adjustScaleWithViewport(double);
IntRect visibleRect = impl->pageClient->visibleContentRect();
IntPoint scrollPosition = visibleRect.location();
- // Do not adjust scroll position if selection rect (caret) is visible after scaling.
- if (!visibleRect.contains(selectionRect)) {
+ // Do not adjust scroll position if content is userscalable or selection rect (caret) is visible after scaling
+ if (impl->pageClient->userScalable() || !visibleRect.contains(selectionRect)) {
// set paddings
scrollPosition = IntPoint(selectionRect.x() - visibleRect.width() / 3, selectionRect.y() - visibleRect.height() / 3);
// If both input field's position x and selection rect can be displayed together,