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 278 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
289 return newWidth != logicalWidth(); | 289 return newWidth != logicalWidth(); |
290 } | 290 } |
291 | 291 |
292 bool LayoutMultiColumnFlowThread::isPageLogicalHeightKnown() const | 292 bool LayoutMultiColumnFlowThread::isPageLogicalHeightKnown() const |
293 { | 293 { |
294 if (LayoutMultiColumnSet* columnSet = lastMultiColumnSet()) | 294 if (LayoutMultiColumnSet* columnSet = lastMultiColumnSet()) |
295 return columnSet->isPageLogicalHeightKnown(); | 295 return columnSet->isPageLogicalHeightKnown(); |
296 return false; | 296 return false; |
297 } | 297 } |
298 | 298 |
| 299 LayoutSize LayoutMultiColumnFlowThread::offsetFromContainer(const LayoutObject*
o, const LayoutPoint& point, bool* offsetDependsOnPoint) const |
| 300 { |
| 301 ASSERT(o == container()); |
| 302 |
| 303 // So far the point has been in flow thread coordinates (i.e. as if everythi
ng in |
| 304 // the fragmentation context lived in one tall single column). Convert it to
a |
| 305 // visual point now. |
| 306 |
| 307 // TODO(mstensho): It's bad to assume that we want offsetFromContainer() to
convert to visual |
| 308 // coordinates. See LayoutBoxModelObject::mapAbsoluteToLocalPoint(). We real
ly only want such |
| 309 // conversions when walking *upwards* in the tree, but offsetFromContainer()
has no idea why |
| 310 // it's being called. |
| 311 if (offsetDependsOnPoint) |
| 312 *offsetDependsOnPoint = true; |
| 313 return columnOffset(point) + topLeftLocationOffset(); |
| 314 } |
| 315 |
299 LayoutSize LayoutMultiColumnFlowThread::flowThreadTranslationAtOffset(LayoutUnit
offsetInFlowThread) const | 316 LayoutSize LayoutMultiColumnFlowThread::flowThreadTranslationAtOffset(LayoutUnit
offsetInFlowThread) const |
300 { | 317 { |
301 LayoutMultiColumnSet* columnSet = columnSetAtBlockOffset(offsetInFlowThread)
; | 318 LayoutMultiColumnSet* columnSet = columnSetAtBlockOffset(offsetInFlowThread)
; |
302 if (!columnSet) | 319 if (!columnSet) |
303 return LayoutSize(0, 0); | 320 return LayoutSize(0, 0); |
304 return columnSet->flowThreadTranslationAtOffset(offsetInFlowThread); | 321 return columnSet->flowThreadTranslationAtOffset(offsetInFlowThread); |
305 } | 322 } |
306 | 323 |
307 LayoutPoint LayoutMultiColumnFlowThread::visualPointToFlowThreadPoint(const Layo
utPoint& visualPoint) const | 324 LayoutPoint LayoutMultiColumnFlowThread::visualPointToFlowThreadPoint(const Layo
utPoint& visualPoint) const |
308 { | 325 { |
(...skipping 636 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
945 // the "mayBe"), if we're in an out-of-flow subtree and have an outer multic
ol container that | 962 // the "mayBe"), if we're in an out-of-flow subtree and have an outer multic
ol container that |
946 // doesn't affect us, but that's okay. We'll discover that further down the
road when trying to | 963 // doesn't affect us, but that's okay. We'll discover that further down the
road when trying to |
947 // locate our enclosing flow thread for real. | 964 // locate our enclosing flow thread for real. |
948 bool mayBeNested = multiColumnBlockFlow()->isInsideFlowThread() || view()->f
ragmentationContext(); | 965 bool mayBeNested = multiColumnBlockFlow()->isInsideFlowThread() || view()->f
ragmentationContext(); |
949 if (!mayBeNested) | 966 if (!mayBeNested) |
950 return; | 967 return; |
951 appendNewFragmentainerGroupIfNeeded(logicalTopInFlowThreadAfterPagination); | 968 appendNewFragmentainerGroupIfNeeded(logicalTopInFlowThreadAfterPagination); |
952 } | 969 } |
953 | 970 |
954 } | 971 } |
OLD | NEW |