OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "content/renderer/render_view_impl.h" | 5 #include "content/renderer/render_view_impl.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <cmath> | 8 #include <cmath> |
9 #include <string> | 9 #include <string> |
10 #include <vector> | 10 #include <vector> |
(...skipping 3551 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3562 // Send the search result over to the browser process. | 3562 // Send the search result over to the browser process. |
3563 Send(queued_find_reply_message_.release()); | 3563 Send(queued_find_reply_message_.release()); |
3564 } | 3564 } |
3565 } | 3565 } |
3566 | 3566 |
3567 void RenderViewImpl::OnZoom(content::PageZoom zoom) { | 3567 void RenderViewImpl::OnZoom(content::PageZoom zoom) { |
3568 if (!webview()) // Not sure if this can happen, but no harm in being safe. | 3568 if (!webview()) // Not sure if this can happen, but no harm in being safe. |
3569 return; | 3569 return; |
3570 | 3570 |
3571 webview()->hidePopups(); | 3571 webview()->hidePopups(); |
3572 #if !defined(TOUCH_UI) | 3572 |
3573 double old_zoom_level = webview()->zoomLevel(); | 3573 double old_zoom_level = webview()->zoomLevel(); |
3574 double zoom_level; | 3574 double zoom_level; |
3575 if (zoom == content::PAGE_ZOOM_RESET) { | 3575 if (zoom == content::PAGE_ZOOM_RESET) { |
3576 zoom_level = 0; | 3576 zoom_level = 0; |
3577 } else if (static_cast<int>(old_zoom_level) == old_zoom_level) { | 3577 } else if (static_cast<int>(old_zoom_level) == old_zoom_level) { |
3578 // Previous zoom level is a whole number, so just increment/decrement. | 3578 // Previous zoom level is a whole number, so just increment/decrement. |
3579 zoom_level = old_zoom_level + zoom; | 3579 zoom_level = old_zoom_level + zoom; |
3580 } else { | 3580 } else { |
3581 // Either the user hit the zoom factor limit and thus the zoom level is now | 3581 // Either the user hit the zoom factor limit and thus the zoom level is now |
3582 // not a whole number, or a plugin changed it to a custom value. We want | 3582 // not a whole number, or a plugin changed it to a custom value. We want |
3583 // to go to the next whole number so that the user can always get back to | 3583 // to go to the next whole number so that the user can always get back to |
3584 // 100% with the keyboard/menu. | 3584 // 100% with the keyboard/menu. |
3585 if ((old_zoom_level > 1 && zoom > 0) || | 3585 if ((old_zoom_level > 1 && zoom > 0) || |
3586 (old_zoom_level < 1 && zoom < 0)) { | 3586 (old_zoom_level < 1 && zoom < 0)) { |
3587 zoom_level = static_cast<int>(old_zoom_level + zoom); | 3587 zoom_level = static_cast<int>(old_zoom_level + zoom); |
3588 } else { | 3588 } else { |
3589 // We're going towards 100%, so first go to the next whole number. | 3589 // We're going towards 100%, so first go to the next whole number. |
3590 zoom_level = static_cast<int>(old_zoom_level); | 3590 zoom_level = static_cast<int>(old_zoom_level); |
3591 } | 3591 } |
3592 } | 3592 } |
3593 webview()->setZoomLevel(false, zoom_level); | 3593 webview()->setZoomLevel(false, zoom_level); |
3594 #else | |
3595 ZoomFactorHelper(zoom, 0, 0, kScalingIncrement); | |
3596 #endif | |
3597 zoomLevelChanged(); | 3594 zoomLevelChanged(); |
3598 } | 3595 } |
3599 | 3596 |
3600 void RenderViewImpl::OnZoomFactor(content::PageZoom zoom, | 3597 void RenderViewImpl::OnZoomFactor(content::PageZoom zoom, |
3601 int zoom_center_x, int zoom_center_y) { | 3598 int zoom_center_x, int zoom_center_y) { |
3602 ZoomFactorHelper(zoom, zoom_center_x, zoom_center_y, | 3599 ZoomFactorHelper(zoom, zoom_center_x, zoom_center_y, |
3603 kScalingIncrementForGesture); | 3600 kScalingIncrementForGesture); |
3604 } | 3601 } |
3605 | 3602 |
3606 void RenderViewImpl::ZoomFactorHelper(content::PageZoom zoom, | 3603 void RenderViewImpl::ZoomFactorHelper(content::PageZoom zoom, |
(...skipping 929 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4536 WebView::zoomLevelToZoomFactor(minimum_level) * 100); | 4533 WebView::zoomLevelToZoomFactor(minimum_level) * 100); |
4537 int maximum_percent = static_cast<int>( | 4534 int maximum_percent = static_cast<int>( |
4538 WebView::zoomLevelToZoomFactor(maximum_level) * 100); | 4535 WebView::zoomLevelToZoomFactor(maximum_level) * 100); |
4539 | 4536 |
4540 Send(new ViewHostMsg_UpdateZoomLimits( | 4537 Send(new ViewHostMsg_UpdateZoomLimits( |
4541 routing_id_, minimum_percent, maximum_percent, remember)); | 4538 routing_id_, minimum_percent, maximum_percent, remember)); |
4542 } | 4539 } |
4543 | 4540 |
4544 void RenderViewImpl::zoomLevelChanged() { | 4541 void RenderViewImpl::zoomLevelChanged() { |
4545 bool remember = !webview()->mainFrame()->document().isPluginDocument(); | 4542 bool remember = !webview()->mainFrame()->document().isPluginDocument(); |
4546 #if defined(TOUCH_UI) | |
4547 float zoom_level = | |
4548 WebView::zoomFactorToZoomLevel(webview()->pageScaleFactor()); | |
4549 #else | |
4550 float zoom_level = webview()->zoomLevel(); | 4543 float zoom_level = webview()->zoomLevel(); |
4551 #endif | |
4552 // Tell the browser which url got zoomed so it can update the menu and the | 4544 // Tell the browser which url got zoomed so it can update the menu and the |
4553 // saved values if necessary | 4545 // saved values if necessary |
4554 Send(new ViewHostMsg_DidZoomURL( | 4546 Send(new ViewHostMsg_DidZoomURL( |
4555 routing_id_, zoom_level, remember, | 4547 routing_id_, zoom_level, remember, |
4556 GURL(webview()->mainFrame()->document().url()))); | 4548 GURL(webview()->mainFrame()->document().url()))); |
4557 } | 4549 } |
4558 | 4550 |
4559 void RenderViewImpl::registerProtocolHandler(const WebString& scheme, | 4551 void RenderViewImpl::registerProtocolHandler(const WebString& scheme, |
4560 const WebString& base_url, | 4552 const WebString& base_url, |
4561 const WebString& url, | 4553 const WebString& url, |
(...skipping 167 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4729 return !!RenderThreadImpl::current()->compositor_thread(); | 4721 return !!RenderThreadImpl::current()->compositor_thread(); |
4730 } | 4722 } |
4731 | 4723 |
4732 void RenderViewImpl::OnJavaBridgeInit( | 4724 void RenderViewImpl::OnJavaBridgeInit( |
4733 const IPC::ChannelHandle& channel_handle) { | 4725 const IPC::ChannelHandle& channel_handle) { |
4734 DCHECK(!java_bridge_dispatcher_.get()); | 4726 DCHECK(!java_bridge_dispatcher_.get()); |
4735 #if defined(ENABLE_JAVA_BRIDGE) | 4727 #if defined(ENABLE_JAVA_BRIDGE) |
4736 java_bridge_dispatcher_.reset(new JavaBridgeDispatcher(this, channel_handle)); | 4728 java_bridge_dispatcher_.reset(new JavaBridgeDispatcher(this, channel_handle)); |
4737 #endif | 4729 #endif |
4738 } | 4730 } |
OLD | NEW |