Index: content/renderer/render_view.cc |
diff --git a/content/renderer/render_view.cc b/content/renderer/render_view.cc |
index a09f7323d5e22dfdd84b9c30786d61a2fcfb5e96..3801705e581ce534589be9254d99dedcb68daabd 100644 |
--- a/content/renderer/render_view.cc |
+++ b/content/renderer/render_view.cc |
@@ -263,6 +263,8 @@ static const int kMaximumNumberOfUnacknowledgedPopups = 25; |
static const char kBackForwardNavigationScheme[] = "history"; |
+static const float kScalingIncrement = 0.1f; |
+ |
static void GetRedirectChain(WebDataSource* ds, std::vector<GURL>* result) { |
WebVector<WebURL> urls; |
ds->redirectChain(urls); |
@@ -3328,7 +3330,7 @@ void RenderView::OnZoom(PageZoom::Function function) { |
return; |
webview()->hidePopups(); |
- |
+#if !defined(TOUCH_UI) |
double old_zoom_level = webview()->zoomLevel(); |
double zoom_level; |
if (function == PageZoom::RESET) { |
@@ -3349,8 +3351,18 @@ void RenderView::OnZoom(PageZoom::Function function) { |
zoom_level = static_cast<int>(old_zoom_level); |
} |
} |
- |
webview()->setZoomLevel(false, zoom_level); |
+#else |
+ double old_page_scale_factor = webview()->pageScaleFactor(); |
+ double page_scale_factor; |
+ if (function == PageZoom::RESET) { |
+ page_scale_factor = 1.0; |
+ } else { |
+ page_scale_factor = old_page_scale_factor + |
+ (function > 0 ? kScalingIncrement : -kScalingIncrement); |
+ } |
+ webview()->scalePage(page_scale_factor, WebPoint(0, 0)); |
+#endif |
zoomLevelChanged(); |
} |