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 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
47 | 47 |
48 namespace WebCore { | 48 namespace WebCore { |
49 | 49 |
50 RenderView::RenderView(Document* document) | 50 RenderView::RenderView(Document* document) |
51 : RenderBlockFlow(document) | 51 : RenderBlockFlow(document) |
52 , m_frameView(document->view()) | 52 , m_frameView(document->view()) |
53 , m_selectionStart(0) | 53 , m_selectionStart(0) |
54 , m_selectionEnd(0) | 54 , m_selectionEnd(0) |
55 , m_selectionStartPos(-1) | 55 , m_selectionStartPos(-1) |
56 , m_selectionEndPos(-1) | 56 , m_selectionEndPos(-1) |
57 , m_maximalOutlineSize(0) | |
58 , m_pageLogicalHeight(0) | 57 , m_pageLogicalHeight(0) |
59 , m_pageLogicalHeightChanged(false) | 58 , m_pageLogicalHeightChanged(false) |
60 , m_layoutState(0) | 59 , m_layoutState(0) |
61 , m_layoutStateDisableCount(0) | 60 , m_layoutStateDisableCount(0) |
62 , m_renderQuoteHead(0) | 61 , m_renderQuoteHead(0) |
63 , m_renderCounterCount(0) | 62 , m_renderCounterCount(0) |
64 { | 63 { |
65 // init RenderObject attributes | 64 // init RenderObject attributes |
66 setInline(false); | 65 setInline(false); |
67 | 66 |
(...skipping 504 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
572 | 571 |
573 // Blocks are responsible for painting line gaps and margin gaps. They m
ust be examined as well. | 572 // Blocks are responsible for painting line gaps and margin gaps. They m
ust be examined as well. |
574 for (RenderBlock* block = o->containingBlock(); block && !block->isRende
rView(); block = block->containingBlock()) { | 573 for (RenderBlock* block = o->containingBlock(); block && !block->isRende
rView(); block = block->containingBlock()) { |
575 if (!processedBlocks.add(block).isNewEntry) | 574 if (!processedBlocks.add(block).isNewEntry) |
576 break; | 575 break; |
577 RenderSelectionInfo(block, true).repaint(); | 576 RenderSelectionInfo(block, true).repaint(); |
578 } | 577 } |
579 } | 578 } |
580 } | 579 } |
581 | 580 |
582 // Compositing layer dimensions take outline size into account, so we have to re
compute layer | |
583 // bounds when it changes. | |
584 // FIXME: This is ugly; it would be nice to have a better way to do this. | |
585 void RenderView::setMaximalOutlineSize(int o) | |
586 { | |
587 if (o != m_maximalOutlineSize) { | |
588 m_maximalOutlineSize = o; | |
589 | |
590 // maximalOutlineSize affects compositing layer dimensions. | |
591 compositor()->setCompositingLayersNeedRebuild(); // FIXME: this reall
y just needs to be a geometry update. | |
592 } | |
593 } | |
594 | |
595 // When exploring the RenderTree looking for the nodes involved in the Selection
, sometimes it's | 581 // When exploring the RenderTree looking for the nodes involved in the Selection
, sometimes it's |
596 // required to change the traversing direction because the "start" position is b
elow the "end" one. | 582 // required to change the traversing direction because the "start" position is b
elow the "end" one. |
597 static inline RenderObject* getNextOrPrevRenderObjectBasedOnDirection(const Rend
erObject* o, const RenderObject* stop, bool& continueExploring, bool& exploringB
ackwards) | 583 static inline RenderObject* getNextOrPrevRenderObjectBasedOnDirection(const Rend
erObject* o, const RenderObject* stop, bool& continueExploring, bool& exploringB
ackwards) |
598 { | 584 { |
599 RenderObject* next; | 585 RenderObject* next; |
600 if (exploringBackwards) { | 586 if (exploringBackwards) { |
601 next = o->previousInPreOrder(); | 587 next = o->previousInPreOrder(); |
602 continueExploring = next && !(next)->isRenderView(); | 588 continueExploring = next && !(next)->isRenderView(); |
603 } else { | 589 } else { |
604 next = o->nextInPreOrder(); | 590 next = o->nextInPreOrder(); |
(...skipping 378 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
983 return viewWidth(IncludeScrollbars) / scale; | 969 return viewWidth(IncludeScrollbars) / scale; |
984 } | 970 } |
985 | 971 |
986 double RenderView::layoutViewportHeight() const | 972 double RenderView::layoutViewportHeight() const |
987 { | 973 { |
988 float scale = m_frameView ? m_frameView->frame().pageZoomFactor() : 1; | 974 float scale = m_frameView ? m_frameView->frame().pageZoomFactor() : 1; |
989 return viewHeight(IncludeScrollbars) / scale; | 975 return viewHeight(IncludeScrollbars) / scale; |
990 } | 976 } |
991 | 977 |
992 } // namespace WebCore | 978 } // namespace WebCore |
OLD | NEW |