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 |