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 183 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
194 // Otherwise, per-descendant repaint is more likely to avoid unnecessary ful
l repaints. | 194 // Otherwise, per-descendant repaint is more likely to avoid unnecessary ful
l repaints. |
195 | 195 |
196 if (shouldUsePrintingLayout()) | 196 if (shouldUsePrintingLayout()) |
197 return true; | 197 return true; |
198 | 198 |
199 if (!style()->isHorizontalWritingMode() || width() != viewWidth()) | 199 if (!style()->isHorizontalWritingMode() || width() != viewWidth()) |
200 return true; | 200 return true; |
201 | 201 |
202 if (height() != viewHeight()) { | 202 if (height() != viewHeight()) { |
203 if (RenderObject* backgroundRenderer = this->backgroundRenderer()) { | 203 if (RenderObject* backgroundRenderer = this->backgroundRenderer()) { |
204 if (backgroundRenderer->mustRepaintFillLayersOnHeightChange(*backgro
undRenderer->style()->backgroundLayers())) | 204 // When background-attachment is 'fixed', we treat the viewport (ins
tead of the 'root' |
| 205 // i.e. html or body) as the background positioning area, and we sho
uld full repaint |
| 206 // viewport resize if the background image is not composited and nee
ds full repaint on |
| 207 // background positioning area resize. |
| 208 if (!m_compositor || !m_compositor->needsFixedRootBackgroundLayer(la
yer())) { |
| 209 if (backgroundRenderer->style()->hasFixedBackgroundImage() |
| 210 && mustRepaintFillLayersOnHeightChange(*backgroundRenderer->
style()->backgroundLayers())) |
205 return true; | 211 return true; |
| 212 } |
206 } | 213 } |
207 } | 214 } |
208 | 215 |
209 return false; | 216 return false; |
210 } | 217 } |
211 | 218 |
212 void RenderView::layout() | 219 void RenderView::layout() |
213 { | 220 { |
214 if (!document().paginated()) | 221 if (!document().paginated()) |
215 setPageLogicalHeight(0); | 222 setPageLogicalHeight(0); |
(...skipping 777 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
993 return viewWidth(IncludeScrollbars) / scale; | 1000 return viewWidth(IncludeScrollbars) / scale; |
994 } | 1001 } |
995 | 1002 |
996 double RenderView::layoutViewportHeight() const | 1003 double RenderView::layoutViewportHeight() const |
997 { | 1004 { |
998 float scale = m_frameView ? m_frameView->frame().pageZoomFactor() : 1; | 1005 float scale = m_frameView ? m_frameView->frame().pageZoomFactor() : 1; |
999 return viewHeight(IncludeScrollbars) / scale; | 1006 return viewHeight(IncludeScrollbars) / scale; |
1000 } | 1007 } |
1001 | 1008 |
1002 } // namespace WebCore | 1009 } // namespace WebCore |
OLD | NEW |