OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2011, 2012 Google Inc. All rights reserved. | 2 * Copyright (C) 2011, 2012 Google Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
6 * met: | 6 * met: |
7 * | 7 * |
8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
(...skipping 1180 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1191 } | 1191 } |
1192 | 1192 |
1193 bool scaleUnchanged = true; | 1193 bool scaleUnchanged = true; |
1194 if (!rect.isEmpty()) { | 1194 if (!rect.isEmpty()) { |
1195 // Pages should be as legible as on desktop when at dpi scale, so no | 1195 // Pages should be as legible as on desktop when at dpi scale, so no |
1196 // need to zoom in further when automatically determining zoom level | 1196 // need to zoom in further when automatically determining zoom level |
1197 // (after double tap, find in page, etc), though the user should still | 1197 // (after double tap, find in page, etc), though the user should still |
1198 // be allowed to manually pinch zoom in further if they desire. | 1198 // be allowed to manually pinch zoom in further if they desire. |
1199 const float defaultScaleWhenAlreadyLegible = m_minimumPageScaleFactor *
doubleTapZoomAlreadyLegibleRatio; | 1199 const float defaultScaleWhenAlreadyLegible = m_minimumPageScaleFactor *
doubleTapZoomAlreadyLegibleRatio; |
1200 float legibleScale = 1; | 1200 float legibleScale = 1; |
1201 #if ENABLE(TEXT_AUTOSIZING) | |
1202 if (page() && page()->settings()) | 1201 if (page() && page()->settings()) |
1203 legibleScale *= page()->settings()->textAutosizingFontScaleFactor(); | 1202 legibleScale *= page()->settings()->textAutosizingFontScaleFactor(); |
1204 #endif | |
1205 if (legibleScale < defaultScaleWhenAlreadyLegible) | 1203 if (legibleScale < defaultScaleWhenAlreadyLegible) |
1206 legibleScale = (scale == m_minimumPageScaleFactor) ? defaultScaleWhe
nAlreadyLegible : m_minimumPageScaleFactor; | 1204 legibleScale = (scale == m_minimumPageScaleFactor) ? defaultScaleWhe
nAlreadyLegible : m_minimumPageScaleFactor; |
1207 | 1205 |
1208 float defaultMargin = doubleTapZoomContentDefaultMargin; | 1206 float defaultMargin = doubleTapZoomContentDefaultMargin; |
1209 float minimumMargin = doubleTapZoomContentMinimumMargin; | 1207 float minimumMargin = doubleTapZoomContentMinimumMargin; |
1210 // We want the margins to have the same physical size, which means we | 1208 // We want the margins to have the same physical size, which means we |
1211 // need to express them in post-scale size. To do that we'd need to know | 1209 // need to express them in post-scale size. To do that we'd need to know |
1212 // the scale we're scaling to, but that depends on the margins. Instead | 1210 // the scale we're scaling to, but that depends on the margins. Instead |
1213 // we express them as a fraction of the target rectangle: this will be | 1211 // we express them as a fraction of the target rectangle: this will be |
1214 // correct if we end up fully zooming to it, and won't matter if we | 1212 // correct if we end up fully zooming to it, and won't matter if we |
(...skipping 1550 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2765 WebRect caret, unusedEnd; | 2763 WebRect caret, unusedEnd; |
2766 selectionBounds(caret, unusedEnd); | 2764 selectionBounds(caret, unusedEnd); |
2767 IntRect unscaledCaret = caret; | 2765 IntRect unscaledCaret = caret; |
2768 unscaledCaret.scale(1 / pageScaleFactor()); | 2766 unscaledCaret.scale(1 / pageScaleFactor()); |
2769 caret = unscaledCaret; | 2767 caret = unscaledCaret; |
2770 | 2768 |
2771 // Pick a scale which is reasonably readable. This is the scale at which | 2769 // Pick a scale which is reasonably readable. This is the scale at which |
2772 // the caret height will become minReadableCaretHeight (adjusted for dpi | 2770 // the caret height will become minReadableCaretHeight (adjusted for dpi |
2773 // and font scale factor). | 2771 // and font scale factor). |
2774 float targetScale = 1; | 2772 float targetScale = 1; |
2775 #if ENABLE(TEXT_AUTOSIZING) | |
2776 if (page() && page()->settings()) | 2773 if (page() && page()->settings()) |
2777 targetScale *= page()->settings()->textAutosizingFontScaleFactor(); | 2774 targetScale *= page()->settings()->textAutosizingFontScaleFactor(); |
2778 #endif | 2775 |
2779 newScale = clampPageScaleFactorToLimits(minReadableCaretHeight * targetScale
/ caret.height); | 2776 newScale = clampPageScaleFactorToLimits(minReadableCaretHeight * targetScale
/ caret.height); |
2780 const float deltaScale = newScale / pageScaleFactor(); | 2777 const float deltaScale = newScale / pageScaleFactor(); |
2781 | 2778 |
2782 // Convert the rects to absolute space in the new scale. | 2779 // Convert the rects to absolute space in the new scale. |
2783 IntRect textboxRectInDocumentCoordinates = textboxRect; | 2780 IntRect textboxRectInDocumentCoordinates = textboxRect; |
2784 textboxRectInDocumentCoordinates.move(mainFrame()->scrollOffset()); | 2781 textboxRectInDocumentCoordinates.move(mainFrame()->scrollOffset()); |
2785 IntRect caretInDocumentCoordinates = caret; | 2782 IntRect caretInDocumentCoordinates = caret; |
2786 caretInDocumentCoordinates.move(mainFrame()->scrollOffset()); | 2783 caretInDocumentCoordinates.move(mainFrame()->scrollOffset()); |
2787 | 2784 |
2788 int viewWidth = m_size.width / newScale; | 2785 int viewWidth = m_size.width / newScale; |
(...skipping 1480 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4269 #endif | 4266 #endif |
4270 | 4267 |
4271 bool WebViewImpl::shouldDisableDesktopWorkarounds() | 4268 bool WebViewImpl::shouldDisableDesktopWorkarounds() |
4272 { | 4269 { |
4273 ViewportArguments arguments = mainFrameImpl()->frame()->document()->viewport
Arguments(); | 4270 ViewportArguments arguments = mainFrameImpl()->frame()->document()->viewport
Arguments(); |
4274 return arguments.width == ViewportArguments::ValueDeviceWidth || !arguments.
userZoom | 4271 return arguments.width == ViewportArguments::ValueDeviceWidth || !arguments.
userZoom |
4275 || (arguments.minZoom == arguments.maxZoom && arguments.minZoom != Viewp
ortArguments::ValueAuto); | 4272 || (arguments.minZoom == arguments.maxZoom && arguments.minZoom != Viewp
ortArguments::ValueAuto); |
4276 } | 4273 } |
4277 | 4274 |
4278 } // namespace WebKit | 4275 } // namespace WebKit |
OLD | NEW |