| OLD | NEW | 
|---|
| 1 /* | 1 /* | 
| 2  * Copyright (C) 1997 Martin Jones (mjones@kde.org) | 2  * Copyright (C) 1997 Martin Jones (mjones@kde.org) | 
| 3  *           (C) 1997 Torben Weis (weis@kde.org) | 3  *           (C) 1997 Torben Weis (weis@kde.org) | 
| 4  *           (C) 1998 Waldo Bastian (bastian@kde.org) | 4  *           (C) 1998 Waldo Bastian (bastian@kde.org) | 
| 5  *           (C) 1999 Lars Knoll (knoll@kde.org) | 5  *           (C) 1999 Lars Knoll (knoll@kde.org) | 
| 6  *           (C) 1999 Antti Koivisto (koivisto@kde.org) | 6  *           (C) 1999 Antti Koivisto (koivisto@kde.org) | 
| 7  * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Apple Inc. All r
      ights reserved. | 7  * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Apple Inc. All r
      ights reserved. | 
| 8  * Copyright (C) 2006 Alexey Proskuryakov (ap@nypop.com) | 8  * Copyright (C) 2006 Alexey Proskuryakov (ap@nypop.com) | 
| 9  * | 9  * | 
| 10  * This library is free software; you can redistribute it and/or | 10  * This library is free software; you can redistribute it and/or | 
| (...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 111 void RenderTable::addChild(RenderObject* child, RenderObject* beforeChild) | 111 void RenderTable::addChild(RenderObject* child, RenderObject* beforeChild) | 
| 112 { | 112 { | 
| 113     // Make sure we don't append things after :after-generated content if we hav
      e it. | 113     // Make sure we don't append things after :after-generated content if we hav
      e it. | 
| 114     if (!beforeChild) | 114     if (!beforeChild) | 
| 115         beforeChild = afterPseudoElementRenderer(); | 115         beforeChild = afterPseudoElementRenderer(); | 
| 116 | 116 | 
| 117     bool wrapInAnonymousSection = !child->isPositioned(); | 117     bool wrapInAnonymousSection = !child->isPositioned(); | 
| 118 | 118 | 
| 119     if (child->isTableCaption()) { | 119     if (child->isTableCaption()) { | 
| 120         m_captions.append(toRenderTableCaption(child)); | 120         m_captions.append(toRenderTableCaption(child)); | 
| 121         setNeedsSectionRecalc(); |  | 
| 122         wrapInAnonymousSection = false; | 121         wrapInAnonymousSection = false; | 
| 123     } else if (child->isTableCol()) { | 122     } else if (child->isTableCol()) { | 
| 124         m_hasColElements = true; | 123         m_hasColElements = true; | 
| 125         wrapInAnonymousSection = false; | 124         wrapInAnonymousSection = false; | 
| 126     } else if (child->isTableSection()) { | 125     } else if (child->isTableSection()) { | 
| 127         switch (child->style()->display()) { | 126         switch (child->style()->display()) { | 
| 128             case TABLE_HEADER_GROUP: | 127             case TABLE_HEADER_GROUP: | 
| 129                 resetSectionPointerIfNotBefore(m_head, beforeChild); | 128                 resetSectionPointerIfNotBefore(m_head, beforeChild); | 
| 130                 if (!m_head) { | 129                 if (!m_head) { | 
| 131                     m_head = toRenderTableSection(child); | 130                     m_head = toRenderTableSection(child); | 
| (...skipping 656 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 788 | 787 | 
| 789     return 0; | 788     return 0; | 
| 790 } | 789 } | 
| 791 | 790 | 
| 792 void RenderTable::recalcSections() const | 791 void RenderTable::recalcSections() const | 
| 793 { | 792 { | 
| 794     m_head = 0; | 793     m_head = 0; | 
| 795     m_foot = 0; | 794     m_foot = 0; | 
| 796     m_firstBody = 0; | 795     m_firstBody = 0; | 
| 797     m_hasColElements = false; | 796     m_hasColElements = false; | 
|  | 797     m_captions.clear(); | 
| 798 | 798 | 
| 799     // We need to get valid pointers to caption, head, foot and first body again | 799     // We need to get valid pointers to caption, head, foot and first body again | 
| 800     RenderObject* nextSibling; | 800     RenderObject* nextSibling; | 
| 801     for (RenderObject* child = firstChild(); child; child = nextSibling) { | 801     for (RenderObject* child = firstChild(); child; child = nextSibling) { | 
| 802         nextSibling = child->nextSibling(); | 802         nextSibling = child->nextSibling(); | 
| 803         switch (child->style()->display()) { | 803         switch (child->style()->display()) { | 
| 804             case TABLE_COLUMN: | 804         case TABLE_CAPTION: | 
| 805             case TABLE_COLUMN_GROUP: | 805             if (child->isTableCaption()) | 
| 806                 m_hasColElements = true; | 806                 m_captions.append(toRenderTableCaption(child)); | 
| 807                 break; | 807             break; | 
| 808             case TABLE_HEADER_GROUP: | 808         case TABLE_COLUMN: | 
| 809                 if (child->isTableSection()) { | 809         case TABLE_COLUMN_GROUP: | 
| 810                     RenderTableSection* section = toRenderTableSection(child); | 810             m_hasColElements = true; | 
| 811                     if (!m_head) | 811             break; | 
| 812                         m_head = section; | 812         case TABLE_HEADER_GROUP: | 
| 813                     else if (!m_firstBody) | 813             if (child->isTableSection()) { | 
| 814                         m_firstBody = section; | 814                 RenderTableSection* section = toRenderTableSection(child); | 
| 815                     section->recalcCellsIfNeeded(); | 815                 if (!m_head) | 
| 816                 } | 816                     m_head = section; | 
| 817                 break; | 817                 else if (!m_firstBody) | 
| 818             case TABLE_FOOTER_GROUP: | 818                     m_firstBody = section; | 
| 819                 if (child->isTableSection()) { | 819                 section->recalcCellsIfNeeded(); | 
| 820                     RenderTableSection* section = toRenderTableSection(child); | 820             } | 
| 821                     if (!m_foot) | 821             break; | 
| 822                         m_foot = section; | 822         case TABLE_FOOTER_GROUP: | 
| 823                     else if (!m_firstBody) | 823             if (child->isTableSection()) { | 
| 824                         m_firstBody = section; | 824                 RenderTableSection* section = toRenderTableSection(child); | 
| 825                     section->recalcCellsIfNeeded(); | 825                 if (!m_foot) | 
| 826                 } | 826                     m_foot = section; | 
| 827                 break; | 827                 else if (!m_firstBody) | 
| 828             case TABLE_ROW_GROUP: | 828                     m_firstBody = section; | 
| 829                 if (child->isTableSection()) { | 829                 section->recalcCellsIfNeeded(); | 
| 830                     RenderTableSection* section = toRenderTableSection(child); | 830             } | 
| 831                     if (!m_firstBody) | 831             break; | 
| 832                         m_firstBody = section; | 832         case TABLE_ROW_GROUP: | 
| 833                     section->recalcCellsIfNeeded(); | 833             if (child->isTableSection()) { | 
| 834                 } | 834                 RenderTableSection* section = toRenderTableSection(child); | 
| 835                 break; | 835                 if (!m_firstBody) | 
| 836             default: | 836                     m_firstBody = section; | 
| 837                 break; | 837                 section->recalcCellsIfNeeded(); | 
|  | 838             } | 
|  | 839             break; | 
|  | 840         default: | 
|  | 841             break; | 
| 838         } | 842         } | 
| 839     } | 843     } | 
| 840 | 844 | 
| 841     // repair column count (addChild can grow it too much, because it always add
      s elements to the last row of a section) | 845     // repair column count (addChild can grow it too much, because it always add
      s elements to the last row of a section) | 
| 842     unsigned maxCols = 0; | 846     unsigned maxCols = 0; | 
| 843     for (RenderObject* child = firstChild(); child; child = child->nextSibling()
      ) { | 847     for (RenderObject* child = firstChild(); child; child = child->nextSibling()
      ) { | 
| 844         if (child->isTableSection()) { | 848         if (child->isTableSection()) { | 
| 845             RenderTableSection* section = toRenderTableSection(child); | 849             RenderTableSection* section = toRenderTableSection(child); | 
| 846             unsigned sectionCols = section->numColumns(); | 850             unsigned sectionCols = section->numColumns(); | 
| 847             if (sectionCols > maxCols) | 851             if (sectionCols > maxCols) | 
| (...skipping 426 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 1274     if (visibleToHitTesting() && (action == HitTestBlockBackground || action == 
      HitTestChildBlockBackground) && boundsRect.intersects(result.rectForPoint(pointI
      nContainer))) { | 1278     if (visibleToHitTesting() && (action == HitTestBlockBackground || action == 
      HitTestChildBlockBackground) && boundsRect.intersects(result.rectForPoint(pointI
      nContainer))) { | 
| 1275         updateHitTestResult(result, flipForWritingMode(pointInContainer - toLayo
      utSize(adjustedLocation))); | 1279         updateHitTestResult(result, flipForWritingMode(pointInContainer - toLayo
      utSize(adjustedLocation))); | 
| 1276         if (!result.addNodeToRectBasedTestResult(node(), pointInContainer, bound
      sRect)) | 1280         if (!result.addNodeToRectBasedTestResult(node(), pointInContainer, bound
      sRect)) | 
| 1277             return true; | 1281             return true; | 
| 1278     } | 1282     } | 
| 1279 | 1283 | 
| 1280     return false; | 1284     return false; | 
| 1281 } | 1285 } | 
| 1282 | 1286 | 
| 1283 } | 1287 } | 
| OLD | NEW | 
|---|