Chromium Code Reviews| 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 185 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 196 { | 196 { |
| 197 BlockPainter::paintInlineBox(*this, paintInfo, paintOffset); | 197 BlockPainter::paintInlineBox(*this, paintInfo, paintOffset); |
| 198 } | 198 } |
| 199 | 199 |
| 200 bool InlineBox::nodeAtPoint(const HitTestRequest& request, HitTestResult& result , const HitTestLocation& locationInContainer, const LayoutPoint& accumulatedOffs et, LayoutUnit /* lineTop */, LayoutUnit /*lineBottom*/) | 200 bool InlineBox::nodeAtPoint(const HitTestRequest& request, HitTestResult& result , const HitTestLocation& locationInContainer, const LayoutPoint& accumulatedOffs et, LayoutUnit /* lineTop */, LayoutUnit /*lineBottom*/) |
| 201 { | 201 { |
| 202 // Hit test all phases of replaced elements atomically, as though the replac ed element established its | 202 // Hit test all phases of replaced elements atomically, as though the replac ed element established its |
| 203 // own stacking context. (See Appendix E.2, section 6.4 on inline block/tab le elements in the CSS2.1 | 203 // own stacking context. (See Appendix E.2, section 6.4 on inline block/tab le elements in the CSS2.1 |
| 204 // specification.) | 204 // specification.) |
| 205 LayoutPoint childPoint = accumulatedOffset; | 205 LayoutPoint childPoint = accumulatedOffset; |
| 206 if (parent()->renderer().style()->isFlippedBlocksWritingMode()) // Faster th an calling containingBlock(). | 206 if (parent()->renderer().style()->slowIsFlippedBlocksWritingMode()) // Faste r than calling containingBlock(). |
| 207 childPoint = renderer().containingBlock()->flipForWritingModeForChild(&t oRenderBox(renderer()), childPoint); | 207 childPoint = renderer().containingBlock()->flipForWritingModeForChild(&t oRenderBox(renderer()), childPoint); |
| 208 | 208 |
| 209 return renderer().hitTest(request, result, locationInContainer, childPoint); | 209 return renderer().hitTest(request, result, locationInContainer, childPoint); |
| 210 } | 210 } |
| 211 | 211 |
| 212 const RootInlineBox& InlineBox::root() const | 212 const RootInlineBox& InlineBox::root() const |
| 213 { | 213 { |
| 214 if (m_parent) | 214 if (m_parent) |
| 215 return m_parent->root(); | 215 return m_parent->root(); |
| 216 ASSERT(isRootInlineBox()); | 216 ASSERT(isRootInlineBox()); |
| (...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 301 | 301 |
| 302 void InlineBox::clearKnownToHaveNoOverflow() | 302 void InlineBox::clearKnownToHaveNoOverflow() |
| 303 { | 303 { |
| 304 m_bitfields.setKnownToHaveNoOverflow(false); | 304 m_bitfields.setKnownToHaveNoOverflow(false); |
| 305 if (parent() && parent()->knownToHaveNoOverflow()) | 305 if (parent() && parent()->knownToHaveNoOverflow()) |
| 306 parent()->clearKnownToHaveNoOverflow(); | 306 parent()->clearKnownToHaveNoOverflow(); |
| 307 } | 307 } |
| 308 | 308 |
| 309 FloatPoint InlineBox::locationIncludingFlipping() | 309 FloatPoint InlineBox::locationIncludingFlipping() |
| 310 { | 310 { |
| 311 if (!renderer().style()->isFlippedBlocksWritingMode()) | 311 if (!UNLIKELY(renderer().hasFlippedBlocksWritingMode())) |
|
pdr.
2014/10/21 23:35:34
Because hasFlippedBlocksWritingMode will be inline
| |
| 312 return FloatPoint(x(), y()); | 312 return FloatPoint(x(), y()); |
| 313 | |
| 313 RenderBlockFlow& block = root().block(); | 314 RenderBlockFlow& block = root().block(); |
| 314 if (block.style()->isHorizontalWritingMode()) | 315 if (block.style()->isHorizontalWritingMode()) |
| 315 return FloatPoint(x(), block.height() - height() - y()); | 316 return FloatPoint(x(), block.height() - height() - y()); |
| 316 | 317 |
| 317 return FloatPoint(block.width() - width() - x(), y()); | 318 return FloatPoint(block.width() - width() - x(), y()); |
| 318 } | 319 } |
| 319 | 320 |
| 320 void InlineBox::flipForWritingMode(FloatRect& rect) | 321 void InlineBox::flipForWritingMode(FloatRect& rect) |
|
leviw_travelin_and_unemployed
2014/10/21 23:29:59
I wonder how much of a difference inlining these w
| |
| 321 { | 322 { |
| 322 if (!renderer().style()->isFlippedBlocksWritingMode()) | 323 if (!UNLIKELY(renderer().hasFlippedBlocksWritingMode())) |
| 323 return; | 324 return; |
| 324 root().block().flipForWritingMode(rect); | 325 root().block().flipForWritingMode(rect); |
| 325 } | 326 } |
| 326 | 327 |
| 327 FloatPoint InlineBox::flipForWritingMode(const FloatPoint& point) | 328 FloatPoint InlineBox::flipForWritingMode(const FloatPoint& point) |
| 328 { | 329 { |
| 329 if (!renderer().style()->isFlippedBlocksWritingMode()) | 330 if (!UNLIKELY(renderer().hasFlippedBlocksWritingMode())) |
| 330 return point; | 331 return point; |
| 331 return root().block().flipForWritingMode(point); | 332 return root().block().flipForWritingMode(point); |
| 332 } | 333 } |
| 333 | 334 |
| 334 void InlineBox::flipForWritingMode(LayoutRect& rect) | 335 void InlineBox::flipForWritingMode(LayoutRect& rect) |
| 335 { | 336 { |
| 336 if (!renderer().style()->isFlippedBlocksWritingMode()) | 337 if (!UNLIKELY(renderer().hasFlippedBlocksWritingMode())) |
| 337 return; | 338 return; |
| 338 root().block().flipForWritingMode(rect); | 339 root().block().flipForWritingMode(rect); |
| 339 } | 340 } |
| 340 | 341 |
| 341 LayoutPoint InlineBox::flipForWritingMode(const LayoutPoint& point) | 342 LayoutPoint InlineBox::flipForWritingMode(const LayoutPoint& point) |
| 342 { | 343 { |
| 343 if (!renderer().style()->isFlippedBlocksWritingMode()) | 344 if (!UNLIKELY(renderer().hasFlippedBlocksWritingMode())) |
| 344 return point; | 345 return point; |
| 345 return root().block().flipForWritingMode(point); | 346 return root().block().flipForWritingMode(point); |
| 346 } | 347 } |
| 347 | 348 |
| 348 } // namespace blink | 349 } // namespace blink |
| 349 | 350 |
| 350 #ifndef NDEBUG | 351 #ifndef NDEBUG |
| 351 | 352 |
| 352 void showTree(const blink::InlineBox* b) | 353 void showTree(const blink::InlineBox* b) |
| 353 { | 354 { |
| 354 if (b) | 355 if (b) |
| 355 b->showTreeForThis(); | 356 b->showTreeForThis(); |
| 356 } | 357 } |
| 357 | 358 |
| 358 void showLineTree(const blink::InlineBox* b) | 359 void showLineTree(const blink::InlineBox* b) |
| 359 { | 360 { |
| 360 if (b) | 361 if (b) |
| 361 b->showLineTreeForThis(); | 362 b->showLineTreeForThis(); |
| 362 } | 363 } |
| 363 | 364 |
| 364 #endif | 365 #endif |
| OLD | NEW |