| 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 822 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 833 m_client->scheduleAnimation(); | 833 m_client->scheduleAnimation(); |
| 834 } | 834 } |
| 835 | 835 |
| 836 void WebViewImpl::setShowScrollBottleneckRects(bool show) | 836 void WebViewImpl::setShowScrollBottleneckRects(bool show) |
| 837 { | 837 { |
| 838 if (m_layerTreeView) | 838 if (m_layerTreeView) |
| 839 m_layerTreeView->setShowScrollBottleneckRects(show); | 839 m_layerTreeView->setShowScrollBottleneckRects(show); |
| 840 m_showScrollBottleneckRects = show; | 840 m_showScrollBottleneckRects = show; |
| 841 } | 841 } |
| 842 | 842 |
| 843 void WebViewImpl::getSelectionRootBounds(WebRect& bounds) const |
| 844 { |
| 845 const LocalFrame* frame = focusedWebCoreFrame(); |
| 846 if (!frame) |
| 847 return; |
| 848 |
| 849 Element* root = frame->selection().rootEditableElementOrDocumentElement(); |
| 850 if (!root) |
| 851 return; |
| 852 |
| 853 // If the selection is inside a form control, the root will be a <div> that |
| 854 // behaves as the editor but we want to return the actual element's bounds. |
| 855 // In practice, that means <textarea> and <input> controls that behave like |
| 856 // a text field. |
| 857 Element* shadowHost = root->shadowHost(); |
| 858 if (shadowHost |
| 859 && (shadowHost->hasTagName(HTMLNames::textareaTag) |
| 860 || (shadowHost->hasTagName(HTMLNames::inputTag) |
| 861 && toHTMLInputElement(shadowHost)->isText()))) |
| 862 root = shadowHost; |
| 863 |
| 864 IntRect boundingBox = root->pixelSnappedBoundingBox(); |
| 865 boundingBox = root->document().frame()->view()->contentsToWindow(boundingBox
); |
| 866 boundingBox.scale(pageScaleFactor()); |
| 867 bounds = boundingBox; |
| 868 } |
| 869 |
| 843 bool WebViewImpl::handleKeyEvent(const WebKeyboardEvent& event) | 870 bool WebViewImpl::handleKeyEvent(const WebKeyboardEvent& event) |
| 844 { | 871 { |
| 845 ASSERT((event.type == WebInputEvent::RawKeyDown) | 872 ASSERT((event.type == WebInputEvent::RawKeyDown) |
| 846 || (event.type == WebInputEvent::KeyDown) | 873 || (event.type == WebInputEvent::KeyDown) |
| 847 || (event.type == WebInputEvent::KeyUp)); | 874 || (event.type == WebInputEvent::KeyUp)); |
| 848 | 875 |
| 849 // Halt an in-progress fling on a key event. | 876 // Halt an in-progress fling on a key event. |
| 850 endActiveFlingAnimation(); | 877 endActiveFlingAnimation(); |
| 851 | 878 |
| 852 // Please refer to the comments explaining the m_suppressNextKeypressEvent | 879 // Please refer to the comments explaining the m_suppressNextKeypressEvent |
| (...skipping 3115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3968 const PageScaleConstraints& constraints = m_pageScaleConstraintsSet.pageDefi
nedConstraints(); | 3995 const PageScaleConstraints& constraints = m_pageScaleConstraintsSet.pageDefi
nedConstraints(); |
| 3969 | 3996 |
| 3970 if (!mainFrameImpl() || !mainFrameImpl()->frameView()) | 3997 if (!mainFrameImpl() || !mainFrameImpl()->frameView()) |
| 3971 return false; | 3998 return false; |
| 3972 | 3999 |
| 3973 return mainFrameImpl()->frameView()->layoutSize().width() == m_size.width | 4000 return mainFrameImpl()->frameView()->layoutSize().width() == m_size.width |
| 3974 || (constraints.minimumScale == constraints.maximumScale && constraints.
minimumScale != -1); | 4001 || (constraints.minimumScale == constraints.maximumScale && constraints.
minimumScale != -1); |
| 3975 } | 4002 } |
| 3976 | 4003 |
| 3977 } // namespace blink | 4004 } // namespace blink |
| OLD | NEW |