OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2003, 2004, 2005, 2006, 2007 Apple Inc. All rights reserved. | 2 * Copyright (C) 2003, 2004, 2005, 2006, 2007 Apple Inc. All rights reserved. |
3 * | 3 * |
4 * This library is free software; you can redistribute it and/or | 4 * This library is free software; you can redistribute it and/or |
5 * modify it under the terms of the GNU Library General Public | 5 * modify it under the terms of the GNU Library General Public |
6 * License as published by the Free Software Foundation; either | 6 * License as published by the Free Software Foundation; either |
7 * version 2 of the License, or (at your option) any later version. | 7 * version 2 of the License, or (at your option) any later version. |
8 * | 8 * |
9 * This library is distributed in the hope that it will be useful, | 9 * This library is distributed in the hope that it will be useful, |
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of | 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
(...skipping 179 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
190 void InlineBox::adjustPosition(float dx, float dy) | 190 void InlineBox::adjustPosition(float dx, float dy) |
191 { | 191 { |
192 m_topLeft.move(dx, dy); | 192 m_topLeft.move(dx, dy); |
193 | 193 |
194 if (m_renderer->isReplaced()) | 194 if (m_renderer->isReplaced()) |
195 toRenderBox(m_renderer)->move(dx, dy); | 195 toRenderBox(m_renderer)->move(dx, dy); |
196 } | 196 } |
197 | 197 |
198 void InlineBox::paint(PaintInfo& paintInfo, const LayoutPoint& paintOffset, Layo
utUnit /* lineTop */, LayoutUnit /*lineBottom*/) | 198 void InlineBox::paint(PaintInfo& paintInfo, const LayoutPoint& paintOffset, Layo
utUnit /* lineTop */, LayoutUnit /*lineBottom*/) |
199 { | 199 { |
200 if (!paintInfo.shouldPaintWithinRoot(renderer()) || (paintInfo.phase != Pain
tPhaseForeground && paintInfo.phase != PaintPhaseSelection)) | 200 if (!paintInfo.shouldPaintWithinRoot(renderer())) |
201 return; | 201 return; |
202 | 202 |
203 LayoutPoint childPoint = paintOffset; | 203 LayoutPoint childPoint = paintOffset; |
204 if (parent()->renderer()->style()->isFlippedBlocksWritingMode()) // Faster t
han calling containingBlock(). | 204 if (parent()->renderer()->style()->isFlippedBlocksWritingMode()) // Faster t
han calling containingBlock(). |
205 childPoint = renderer()->containingBlock()->flipForWritingModeForChild(t
oRenderBox(renderer()), childPoint); | 205 childPoint = renderer()->containingBlock()->flipForWritingModeForChild(t
oRenderBox(renderer()), childPoint); |
206 | 206 |
207 // Paint all phases of replaced elements atomically, as though the replaced
element established its | 207 RenderBlock::paintAsInlineBlock(renderer(), paintInfo, childPoint); |
208 // own stacking context. (See Appendix E.2, section 6.4 on inline block/tab
le elements in the CSS2.1 | |
209 // specification.) | |
210 bool preservePhase = paintInfo.phase == PaintPhaseSelection || paintInfo.pha
se == PaintPhaseTextClip; | |
211 PaintInfo info(paintInfo); | |
212 info.phase = preservePhase ? paintInfo.phase : PaintPhaseBlockBackground; | |
213 renderer()->paint(info, childPoint); | |
214 if (!preservePhase) { | |
215 info.phase = PaintPhaseChildBlockBackgrounds; | |
216 renderer()->paint(info, childPoint); | |
217 info.phase = PaintPhaseFloat; | |
218 renderer()->paint(info, childPoint); | |
219 info.phase = PaintPhaseForeground; | |
220 renderer()->paint(info, childPoint); | |
221 info.phase = PaintPhaseOutline; | |
222 renderer()->paint(info, childPoint); | |
223 } | |
224 } | 208 } |
225 | 209 |
226 bool InlineBox::nodeAtPoint(const HitTestRequest& request, HitTestResult& result
, const HitTestLocation& locationInContainer, const LayoutPoint& accumulatedOffs
et, LayoutUnit /* lineTop */, LayoutUnit /*lineBottom*/) | 210 bool InlineBox::nodeAtPoint(const HitTestRequest& request, HitTestResult& result
, const HitTestLocation& locationInContainer, const LayoutPoint& accumulatedOffs
et, LayoutUnit /* lineTop */, LayoutUnit /*lineBottom*/) |
227 { | 211 { |
228 // Hit test all phases of replaced elements atomically, as though the replac
ed element established its | 212 // Hit test all phases of replaced elements atomically, as though the replac
ed element established its |
229 // own stacking context. (See Appendix E.2, section 6.4 on inline block/tab
le elements in the CSS2.1 | 213 // own stacking context. (See Appendix E.2, section 6.4 on inline block/tab
le elements in the CSS2.1 |
230 // specification.) | 214 // specification.) |
231 LayoutPoint childPoint = accumulatedOffset; | 215 LayoutPoint childPoint = accumulatedOffset; |
232 if (parent()->renderer()->style()->isFlippedBlocksWritingMode()) // Faster t
han calling containingBlock(). | 216 if (parent()->renderer()->style()->isFlippedBlocksWritingMode()) // Faster t
han calling containingBlock(). |
233 childPoint = renderer()->containingBlock()->flipForWritingModeForChild(t
oRenderBox(renderer()), childPoint); | 217 childPoint = renderer()->containingBlock()->flipForWritingModeForChild(t
oRenderBox(renderer()), childPoint); |
(...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
381 b->showTreeForThis(); | 365 b->showTreeForThis(); |
382 } | 366 } |
383 | 367 |
384 void showLineTree(const WebCore::InlineBox* b) | 368 void showLineTree(const WebCore::InlineBox* b) |
385 { | 369 { |
386 if (b) | 370 if (b) |
387 b->showLineTreeForThis(); | 371 b->showLineTreeForThis(); |
388 } | 372 } |
389 | 373 |
390 #endif | 374 #endif |
OLD | NEW |