OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) | 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) |
3 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserv
ed. | 3 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserv
ed. |
4 * | 4 * |
5 * This library is free software; you can redistribute it and/or | 5 * This library is free software; you can redistribute it and/or |
6 * modify it under the terms of the GNU Library General Public | 6 * modify it under the terms of the GNU Library General Public |
7 * License as published by the Free Software Foundation; either | 7 * License as published by the Free Software Foundation; either |
8 * version 2 of the License, or (at your option) any later version. | 8 * version 2 of the License, or (at your option) any later version. |
9 * | 9 * |
10 * This library is distributed in the hope that it will be useful, | 10 * This library is distributed in the hope that it will be useful, |
(...skipping 22 matching lines...) Expand all Loading... |
33 #include "core/rendering/CompositedLayerMapping.h" | 33 #include "core/rendering/CompositedLayerMapping.h" |
34 #include "core/rendering/FlowThreadController.h" | 34 #include "core/rendering/FlowThreadController.h" |
35 #include "core/rendering/GraphicsContextAnnotator.h" | 35 #include "core/rendering/GraphicsContextAnnotator.h" |
36 #include "core/rendering/HitTestResult.h" | 36 #include "core/rendering/HitTestResult.h" |
37 #include "core/rendering/LayoutRectRecorder.h" | 37 #include "core/rendering/LayoutRectRecorder.h" |
38 #include "core/rendering/RenderFlowThread.h" | 38 #include "core/rendering/RenderFlowThread.h" |
39 #include "core/rendering/RenderGeometryMap.h" | 39 #include "core/rendering/RenderGeometryMap.h" |
40 #include "core/rendering/RenderLayer.h" | 40 #include "core/rendering/RenderLayer.h" |
41 #include "core/rendering/RenderLayerCompositor.h" | 41 #include "core/rendering/RenderLayerCompositor.h" |
42 #include "core/rendering/RenderSelectionInfo.h" | 42 #include "core/rendering/RenderSelectionInfo.h" |
43 #include "core/rendering/RenderWidget.h" | |
44 #include "core/svg/SVGDocumentExtensions.h" | 43 #include "core/svg/SVGDocumentExtensions.h" |
45 #include "platform/geometry/FloatQuad.h" | 44 #include "platform/geometry/FloatQuad.h" |
46 #include "platform/geometry/TransformState.h" | 45 #include "platform/geometry/TransformState.h" |
47 #include "platform/graphics/GraphicsContext.h" | 46 #include "platform/graphics/GraphicsContext.h" |
48 | 47 |
49 namespace WebCore { | 48 namespace WebCore { |
50 | 49 |
51 RenderView::RenderView(Document* document) | 50 RenderView::RenderView(Document* document) |
52 : RenderBlockFlow(document) | 51 : RenderBlockFlow(document) |
53 , m_frameView(document->view()) | 52 , m_frameView(document->view()) |
(...skipping 885 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
939 endPos = m_selectionEndPos; | 938 endPos = m_selectionEndPos; |
940 } | 939 } |
941 | 940 |
942 bool RenderView::shouldUsePrintingLayout() const | 941 bool RenderView::shouldUsePrintingLayout() const |
943 { | 942 { |
944 if (!document().printing() || !m_frameView) | 943 if (!document().printing() || !m_frameView) |
945 return false; | 944 return false; |
946 return m_frameView->frame().shouldUsePrintingLayout(); | 945 return m_frameView->frame().shouldUsePrintingLayout(); |
947 } | 946 } |
948 | 947 |
949 size_t RenderView::getRetainedWidgets(Vector<RenderWidget*>& renderWidgets) | |
950 { | |
951 size_t size = m_widgets.size(); | |
952 | |
953 renderWidgets.reserveCapacity(size); | |
954 | |
955 RenderWidgetSet::const_iterator end = m_widgets.end(); | |
956 for (RenderWidgetSet::const_iterator it = m_widgets.begin(); it != end; ++it
) { | |
957 renderWidgets.uncheckedAppend(*it); | |
958 (*it)->ref(); | |
959 } | |
960 | |
961 return size; | |
962 } | |
963 | |
964 void RenderView::releaseWidgets(Vector<RenderWidget*>& renderWidgets) | |
965 { | |
966 size_t size = renderWidgets.size(); | |
967 | |
968 for (size_t i = 0; i < size; ++i) | |
969 renderWidgets[i]->deref(); | |
970 } | |
971 | |
972 void RenderView::updateWidgetPositions() | |
973 { | |
974 // updateWidgetPosition() can possibly cause layout to be re-entered (via pl
ug-ins running | |
975 // scripts in response to NPP_SetWindow, for example), so we need to keep th
e Widgets | |
976 // alive during enumeration. | |
977 | |
978 Vector<RenderWidget*> renderWidgets; | |
979 size_t size = getRetainedWidgets(renderWidgets); | |
980 | |
981 for (size_t i = 0; i < size; ++i) | |
982 renderWidgets[i]->updateWidgetPosition(); | |
983 | |
984 for (size_t i = 0; i < size; ++i) | |
985 renderWidgets[i]->widgetPositionsUpdated(); | |
986 | |
987 releaseWidgets(renderWidgets); | |
988 } | |
989 | |
990 void RenderView::addWidget(RenderWidget* o) | |
991 { | |
992 m_widgets.add(o); | |
993 } | |
994 | |
995 void RenderView::removeWidget(RenderWidget* o) | |
996 { | |
997 m_widgets.remove(o); | |
998 } | |
999 | |
1000 LayoutRect RenderView::viewRect() const | 948 LayoutRect RenderView::viewRect() const |
1001 { | 949 { |
1002 if (shouldUsePrintingLayout()) | 950 if (shouldUsePrintingLayout()) |
1003 return LayoutRect(LayoutPoint(), size()); | 951 return LayoutRect(LayoutPoint(), size()); |
1004 if (m_frameView) | 952 if (m_frameView) |
1005 return m_frameView->visibleContentRect(); | 953 return m_frameView->visibleContentRect(); |
1006 return LayoutRect(); | 954 return LayoutRect(); |
1007 } | 955 } |
1008 | 956 |
1009 IntRect RenderView::unscaledDocumentRect() const | 957 IntRect RenderView::unscaledDocumentRect() const |
(...skipping 198 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1208 return viewWidth(ScrollableArea::IncludeScrollbars) / scale; | 1156 return viewWidth(ScrollableArea::IncludeScrollbars) / scale; |
1209 } | 1157 } |
1210 | 1158 |
1211 double RenderView::layoutViewportHeight() const | 1159 double RenderView::layoutViewportHeight() const |
1212 { | 1160 { |
1213 float scale = m_frameView ? m_frameView->frame().pageZoomFactor() : 1; | 1161 float scale = m_frameView ? m_frameView->frame().pageZoomFactor() : 1; |
1214 return viewHeight(ScrollableArea::IncludeScrollbars) / scale; | 1162 return viewHeight(ScrollableArea::IncludeScrollbars) / scale; |
1215 } | 1163 } |
1216 | 1164 |
1217 } // namespace WebCore | 1165 } // namespace WebCore |
OLD | NEW |