OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2012 Apple Inc. All rights reserved. | 2 * Copyright (C) 2012 Apple Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
6 * are met: | 6 * are met: |
7 * 1. Redistributions of source code must retain the above copyright | 7 * 1. Redistributions of source code must retain the above copyright |
8 * notice, this list of conditions and the following disclaimer. | 8 * notice, this list of conditions and the following disclaimer. |
9 * 2. Redistributions in binary form must reproduce the above copyright | 9 * 2. Redistributions in binary form must reproduce the above copyright |
10 * notice, this list of conditions and the following disclaimer in the | 10 * notice, this list of conditions and the following disclaimer in the |
(...skipping 447 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
458 // Now get the overflow rect that corresponds to the column. | 458 // Now get the overflow rect that corresponds to the column. |
459 LayoutRect flowThreadOverflowPortion = flowThreadPortionOverflowRect(flo
wThreadPortion, i, colCount, colGap); | 459 LayoutRect flowThreadOverflowPortion = flowThreadPortionOverflowRect(flo
wThreadPortion, i, colCount, colGap); |
460 | 460 |
461 // Do a paint invalidation for this specific column. | 461 // Do a paint invalidation for this specific column. |
462 paintInvalidationOfFlowThreadContentRectangle(paintInvalidationRect, flo
wThreadPortion, flowThreadOverflowPortion, colRect.location()); | 462 paintInvalidationOfFlowThreadContentRectangle(paintInvalidationRect, flo
wThreadPortion, flowThreadOverflowPortion, colRect.location()); |
463 } | 463 } |
464 } | 464 } |
465 | 465 |
466 void RenderMultiColumnSet::collectLayerFragments(LayerFragments& fragments, cons
t LayoutRect& layerBoundingBox, const LayoutRect& dirtyRect) | 466 void RenderMultiColumnSet::collectLayerFragments(LayerFragments& fragments, cons
t LayoutRect& layerBoundingBox, const LayoutRect& dirtyRect) |
467 { | 467 { |
468 // The two rectangles passed to this method are physical, except that we pre
tend that there's | 468 // |layerBoundingBox| is in the flow thread coordinate space, relative to th
e top/left edge of |
469 // only one long column (that's how a flow thread works). | 469 // the flow thread, but note that it has been converted with respect to writ
ing mode (so that |
| 470 // it's visual/physical in that sense). |
| 471 // |
| 472 // |dirtyRect| is visual, relative to the multicol container. |
470 // | 473 // |
471 // Then there's the output from this method - the stuff we put into the list
of fragments. The | 474 // Then there's the output from this method - the stuff we put into the list
of fragments. The |
472 // fragment.paginationOffset point is the actual physical translation requir
ed to get from a | 475 // fragment.paginationOffset point is the actual visual translation required
to get from a |
473 // location in the flow thread to a location in a given column. The fragment
.paginationClip | 476 // location in the flow thread to a location in a given column. The fragment
.paginationClip |
474 // rectangle, on the other hand, is in the same coordinate system as the two
rectangles passed | 477 // rectangle, on the other hand, is in flow thread coordinates. |
475 // to this method (flow thread coordinates). | |
476 // | 478 // |
477 // All other rectangles in this method are sized physically, and the inline
direction coordinate | 479 // All other rectangles in this method are sized physically, and the inline
direction coordinate |
478 // is physical too, but the block direction coordinate is "logical top". Thi
s is the same as | 480 // is physical too, but the block direction coordinate is "logical top". Thi
s is the same as |
479 // e.g. RenderBox::frameRect(). These rectangles also pretend that there's o
nly one long column, | 481 // e.g. RenderBox::frameRect(). These rectangles also pretend that there's o
nly one long column, |
480 // i.e. they are for the flow thread. | 482 // i.e. they are for the flow thread. |
481 | 483 |
482 // Put the layer bounds into flow thread-local coordinates by flipping it fi
rst. Since we're in | 484 // Put the layer bounds into flow thread-local coordinates by flipping it fi
rst. Since we're in |
483 // a renderer, most rectangles are represented this way. | 485 // a renderer, most rectangles are represented this way. |
484 LayoutRect layerBoundsInFlowThread(layerBoundingBox); | 486 LayoutRect layerBoundsInFlowThread(layerBoundingBox); |
485 flowThread()->flipForWritingMode(layerBoundsInFlowThread); | 487 flowThread()->flipForWritingMode(layerBoundsInFlowThread); |
(...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
620 | 622 |
621 void RenderMultiColumnSet::detachRegion() | 623 void RenderMultiColumnSet::detachRegion() |
622 { | 624 { |
623 if (m_flowThread) { | 625 if (m_flowThread) { |
624 m_flowThread->removeRegionFromThread(this); | 626 m_flowThread->removeRegionFromThread(this); |
625 m_flowThread = 0; | 627 m_flowThread = 0; |
626 } | 628 } |
627 } | 629 } |
628 | 630 |
629 } | 631 } |
OLD | NEW |