OLD | NEW |
1 /** | 1 /** |
2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) | 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) |
3 * (C) 2000 Simon Hausmann <hausmann@kde.org> | 3 * (C) 2000 Simon Hausmann <hausmann@kde.org> |
4 * (C) 2000 Stefan Schimanski (1Stein@gmx.de) | 4 * (C) 2000 Stefan Schimanski (1Stein@gmx.de) |
5 * Copyright (C) 2004, 2005, 2006 Apple Computer, Inc. | 5 * Copyright (C) 2004, 2005, 2006 Apple Computer, Inc. |
6 * | 6 * |
7 * This library is free software; you can redistribute it and/or | 7 * This library is free software; you can redistribute it and/or |
8 * modify it under the terms of the GNU Library General Public | 8 * modify it under the terms of the GNU Library General Public |
9 * License as published by the Free Software Foundation; either | 9 * License as published by the Free Software Foundation; either |
10 * version 2 of the License, or (at your option) any later version. | 10 * version 2 of the License, or (at your option) any later version. |
(...skipping 421 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
432 result.setAllowBorder(BottomFrameEdge, m_rows.m_allowBorder[rows]); | 432 result.setAllowBorder(BottomFrameEdge, m_rows.m_allowBorder[rows]); |
433 } | 433 } |
434 | 434 |
435 return result; | 435 return result; |
436 } | 436 } |
437 | 437 |
438 void RenderFrameSet::layout() | 438 void RenderFrameSet::layout() |
439 { | 439 { |
440 ASSERT(needsLayout()); | 440 ASSERT(needsLayout()); |
441 | 441 |
442 bool doFullRepaint = selfNeedsLayout() && checkForRepaintDuringLayout(); | 442 bool doFullRepaint = selfNeedsLayout() && checkForPaintInvalidationDuringLay
out(); |
443 LayoutRect oldBounds; | 443 LayoutRect oldBounds; |
444 const RenderLayerModelObject* repaintContainer = 0; | 444 const RenderLayerModelObject* repaintContainer = 0; |
445 if (doFullRepaint) { | 445 if (doFullRepaint) { |
446 repaintContainer = containerForRepaint(); | 446 repaintContainer = containerForPaintInvalidation(); |
447 oldBounds = boundsRectForRepaint(repaintContainer); | 447 oldBounds = boundsRectForPaintInvalidation(repaintContainer); |
448 } | 448 } |
449 | 449 |
450 if (!parent()->isFrameSet() && !document().printing()) { | 450 if (!parent()->isFrameSet() && !document().printing()) { |
451 setWidth(view()->viewWidth()); | 451 setWidth(view()->viewWidth()); |
452 setHeight(view()->viewHeight()); | 452 setHeight(view()->viewHeight()); |
453 } | 453 } |
454 | 454 |
455 unsigned cols = frameSet()->totalCols(); | 455 unsigned cols = frameSet()->totalCols(); |
456 unsigned rows = frameSet()->totalRows(); | 456 unsigned rows = frameSet()->totalRows(); |
457 | 457 |
458 if (m_rows.m_sizes.size() != rows || m_cols.m_sizes.size() != cols) { | 458 if (m_rows.m_sizes.size() != rows || m_cols.m_sizes.size() != cols) { |
459 m_rows.resize(rows); | 459 m_rows.resize(rows); |
460 m_cols.resize(cols); | 460 m_cols.resize(cols); |
461 } | 461 } |
462 | 462 |
463 LayoutUnit borderThickness = frameSet()->border(); | 463 LayoutUnit borderThickness = frameSet()->border(); |
464 layOutAxis(m_rows, frameSet()->rowLengths(), height() - (rows - 1) * borderT
hickness); | 464 layOutAxis(m_rows, frameSet()->rowLengths(), height() - (rows - 1) * borderT
hickness); |
465 layOutAxis(m_cols, frameSet()->colLengths(), width() - (cols - 1) * borderTh
ickness); | 465 layOutAxis(m_cols, frameSet()->colLengths(), width() - (cols - 1) * borderTh
ickness); |
466 | 466 |
467 positionFrames(); | 467 positionFrames(); |
468 | 468 |
469 RenderBox::layout(); | 469 RenderBox::layout(); |
470 | 470 |
471 computeEdgeInfo(); | 471 computeEdgeInfo(); |
472 | 472 |
473 updateLayerTransform(); | 473 updateLayerTransform(); |
474 | 474 |
475 if (doFullRepaint) { | 475 if (doFullRepaint) { |
476 invalidatePaintUsingContainer(repaintContainer, pixelSnappedIntRect(oldB
ounds), InvalidationSelfLayout); | 476 invalidatePaintUsingContainer(repaintContainer, pixelSnappedIntRect(oldB
ounds), InvalidationSelfLayout); |
477 LayoutRect newBounds = boundsRectForRepaint(repaintContainer); | 477 LayoutRect newBounds = boundsRectForPaintInvalidation(repaintContainer); |
478 if (newBounds != oldBounds) | 478 if (newBounds != oldBounds) |
479 invalidatePaintUsingContainer(repaintContainer, pixelSnappedIntRect(
newBounds), InvalidationSelfLayout); | 479 invalidatePaintUsingContainer(repaintContainer, pixelSnappedIntRect(
newBounds), InvalidationSelfLayout); |
480 } | 480 } |
481 | 481 |
482 clearNeedsLayout(); | 482 clearNeedsLayout(); |
483 } | 483 } |
484 | 484 |
485 static void clearNeedsLayoutOnHiddenFrames(RenderBox* frame) | 485 static void clearNeedsLayoutOnHiddenFrames(RenderBox* frame) |
486 { | 486 { |
487 for (; frame; frame = frame->nextSiblingBox()) { | 487 for (; frame; frame = frame->nextSiblingBox()) { |
(...skipping 19 matching lines...) Expand all Loading... |
507 int xPos = 0; | 507 int xPos = 0; |
508 int height = m_rows.m_sizes[r]; | 508 int height = m_rows.m_sizes[r]; |
509 for (int c = 0; c < cols; c++) { | 509 for (int c = 0; c < cols; c++) { |
510 child->setLocation(IntPoint(xPos, yPos)); | 510 child->setLocation(IntPoint(xPos, yPos)); |
511 int width = m_cols.m_sizes[c]; | 511 int width = m_cols.m_sizes[c]; |
512 | 512 |
513 // has to be resized and itself resize its contents | 513 // has to be resized and itself resize its contents |
514 if (width != child->width() || height != child->height()) { | 514 if (width != child->width() || height != child->height()) { |
515 child->setWidth(width); | 515 child->setWidth(width); |
516 child->setHeight(height); | 516 child->setHeight(height); |
517 child->setNeedsLayoutAndFullRepaint(); | 517 child->setNeedsLayoutAndFullPaintInvalidation(); |
518 child->layout(); | 518 child->layout(); |
519 } | 519 } |
520 | 520 |
521 xPos += width + borderThickness; | 521 xPos += width + borderThickness; |
522 | 522 |
523 child = child->nextSiblingBox(); | 523 child = child->nextSiblingBox(); |
524 if (!child) | 524 if (!child) |
525 return; | 525 return; |
526 } | 526 } |
527 yPos += height + borderThickness; | 527 yPos += height + borderThickness; |
(...skipping 19 matching lines...) Expand all Loading... |
547 if (needsLayout()) | 547 if (needsLayout()) |
548 return; | 548 return; |
549 if (axis.m_splitBeingResized == noSplit) | 549 if (axis.m_splitBeingResized == noSplit) |
550 return; | 550 return; |
551 int currentSplitPosition = splitPosition(axis, axis.m_splitBeingResized); | 551 int currentSplitPosition = splitPosition(axis, axis.m_splitBeingResized); |
552 int delta = (position - currentSplitPosition) - axis.m_splitResizeOffset; | 552 int delta = (position - currentSplitPosition) - axis.m_splitResizeOffset; |
553 if (!delta) | 553 if (!delta) |
554 return; | 554 return; |
555 axis.m_deltas[axis.m_splitBeingResized - 1] += delta; | 555 axis.m_deltas[axis.m_splitBeingResized - 1] += delta; |
556 axis.m_deltas[axis.m_splitBeingResized] -= delta; | 556 axis.m_deltas[axis.m_splitBeingResized] -= delta; |
557 setNeedsLayoutAndFullRepaint(); | 557 setNeedsLayoutAndFullPaintInvalidation(); |
558 } | 558 } |
559 | 559 |
560 bool RenderFrameSet::userResize(MouseEvent* evt) | 560 bool RenderFrameSet::userResize(MouseEvent* evt) |
561 { | 561 { |
562 if (!m_isResizing) { | 562 if (!m_isResizing) { |
563 if (needsLayout()) | 563 if (needsLayout()) |
564 return false; | 564 return false; |
565 if (evt->type() == EventTypeNames::mousedown && evt->button() == LeftBut
ton) { | 565 if (evt->type() == EventTypeNames::mousedown && evt->button() == LeftBut
ton) { |
566 FloatPoint localPos = absoluteToLocal(evt->absoluteLocation(), UseTr
ansforms); | 566 FloatPoint localPos = absoluteToLocal(evt->absoluteLocation(), UseTr
ansforms); |
567 startResizing(m_cols, localPos.x()); | 567 startResizing(m_cols, localPos.x()); |
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
661 return SetCursor; | 661 return SetCursor; |
662 } | 662 } |
663 if (canResizeColumn(roundedPoint)) { | 663 if (canResizeColumn(roundedPoint)) { |
664 cursor = columnResizeCursor(); | 664 cursor = columnResizeCursor(); |
665 return SetCursor; | 665 return SetCursor; |
666 } | 666 } |
667 return RenderBox::getCursor(point, cursor); | 667 return RenderBox::getCursor(point, cursor); |
668 } | 668 } |
669 | 669 |
670 } // namespace WebCore | 670 } // namespace WebCore |
OLD | NEW |