Changeset 53420 in webkit
- Timestamp:
- Jan 18, 2010, 12:55:25 PM (15 years ago)
- Location:
- trunk
- Files:
-
- 5 added
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r53419 r53420 1 2010-01-18 Dan Bernstein <mitz@apple.com> 2 3 Reviewed by Darin Adler. 4 5 <rdar://problem/6892207> REGRESSION (Safari 4): Menus at sciencedirect.com push the main article context down the page 6 <rdar://problem/7546035> Second right floated image misplacment 7 https://bugs.webkit.org/show_bug.cgi?id=33245 8 9 * fast/dynamic/float-in-trailing-whitespace-after-last-line-break-2.html: Added. 10 * fast/dynamic/float-in-trailing-whitespace-after-last-line-break-2-expected.checksum: Added. 11 * fast/dynamic/float-in-trailing-whitespace-after-last-line-break-2-expected.png: Added. 12 * fast/dynamic/float-in-trailing-whitespace-after-last-line-break-2-expected.txt: Added. 13 1 14 2010-01-18 Alexey Proskuryakov <ap@apple.com> 2 15 -
trunk/WebCore/ChangeLog
r53418 r53420 1 2010-01-18 Dan Bernstein <mitz@apple.com> 2 3 Reviewed by Darin Adler. 4 5 <rdar://problem/6892207> REGRESSION (Safari 4): Menus at sciencedirect.com push the main article context down the page 6 <rdar://problem/7546035> Second right floated image misplacment 7 https://bugs.webkit.org/show_bug.cgi?id=33245 8 9 Test: fast/dynamic/float-in-trailing-whitespace-after-last-line-break-2.html 10 11 When the last line of a block contains a line break and there are floats 12 after the line break, it is incorrect to put those floats in the last line’s 13 floats vector (along with floats from before the break). Instead, create 14 an additional line box (a TrailingFloatsRootInlineBox) and put those floats 15 in its floats vector. 16 17 * WebCore.vcproj/WebCore.vcproj: Added TrailingFloatsRootInlineBox.h 18 * WebCore.xcodeproj/project.pbxproj: Ditto. 19 * rendering/RenderBlock.cpp: 20 (WebCore::RenderBlock::markLinesDirtyInVerticalRange): Added an optional 21 parameter, which is the highest line to dirty. 22 * rendering/RenderBlock.h: 23 * rendering/RenderBlockLineLayout.cpp: 24 (WebCore::RenderBlock::layoutInlineChildren): Create a TrailingFloatsRootInlineBox 25 for the floats occurring after the line break on the last line. 26 (WebCore::RenderBlock::determineStartPosition): Prevent dirtying of lines 27 above the first dirty line. 28 * rendering/TrailingFloatsRootInlineBox.h: Added. 29 (WebCore::TrailingFloatsRootInlineBox::TrailingFloatsRootInlineBox): Call 30 setHasVirtualHeight(). 31 (WebCore::TrailingFloatsRootInlineBox::virtualHeight): Return 0. 32 1 33 2010-01-18 Gavin Barraclough <barraclough@apple.com> 2 34 -
trunk/WebCore/WebCore.vcproj/WebCore.vcproj
r53328 r53420 27800 27800 </File> 27801 27801 <File 27802 RelativePath="..\rendering\TrailingFloatsRootInlineBox.h" 27803 > 27804 </File> 27805 <File 27802 27806 RelativePath="..\rendering\TransformState.cpp" 27803 27807 > -
trunk/WebCore/WebCore.xcodeproj/project.pbxproj
r53412 r53420 5983 5983 37F818FB0D657606005E1F05 /* WebCoreURLResponse.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebCoreURLResponse.h; sourceTree = "<group>"; }; 5984 5984 37F818FC0D657606005E1F05 /* WebCoreURLResponse.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WebCoreURLResponse.mm; sourceTree = "<group>"; }; 5985 37FC96DA1104ED71003E1FAD /* TrailingFloatsRootInlineBox.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TrailingFloatsRootInlineBox.h; sourceTree = "<group>"; }; 5985 5986 41002CCB0F66EDEF009E660D /* ScriptFunctionCall.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ScriptFunctionCall.h; sourceTree = "<group>"; }; 5986 5987 41002CCC0F66EDEF009E660D /* ScriptFunctionCall.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ScriptFunctionCall.cpp; sourceTree = "<group>"; }; … … 15641 15642 AB014DE10E689A4300E10445 /* TextControlInnerElements.cpp */, 15642 15643 AB014DE20E689A4300E10445 /* TextControlInnerElements.h */, 15644 37FC96DA1104ED71003E1FAD /* TrailingFloatsRootInlineBox.h */, 15643 15645 0F500AB00F54DB3100EEF928 /* TransformState.cpp */, 15644 15646 0F500AAE0F54DB1B00EEF928 /* TransformState.h */, -
trunk/WebCore/rendering/RenderBlock.cpp
r53218 r53420 3 3 * (C) 1999 Antti Koivisto (koivisto@kde.org) 4 4 * (C) 2007 David Smith (catfish.man@gmail.com) 5 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008 Apple Inc. All rights reserved.5 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Apple Inc. All rights reserved. 6 6 * 7 7 * This library is free software; you can redistribute it and/or … … 2929 2929 } 2930 2930 2931 void RenderBlock::markLinesDirtyInVerticalRange(int top, int bottom )2931 void RenderBlock::markLinesDirtyInVerticalRange(int top, int bottom, RootInlineBox* highest) 2932 2932 { 2933 2933 if (top >= bottom) … … 2941 2941 } 2942 2942 2943 while (afterLowest && afterLowest ->blockHeight() >= top) {2943 while (afterLowest && afterLowest != highest && afterLowest->blockHeight() >= top) { 2944 2944 afterLowest->markDirty(); 2945 2945 afterLowest = afterLowest->prevRootBox(); -
trunk/WebCore/rendering/RenderBlock.h
r52632 r53420 3 3 * (C) 1999 Antti Koivisto (koivisto@kde.org) 4 4 * (C) 2007 David Smith (catfish.man@gmail.com) 5 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserved.5 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Apple Inc. All rights reserved. 6 6 * 7 7 * This library is free software; you can redistribute it and/or … … 35 35 class InlineIterator; 36 36 class RenderInline; 37 class RootInlineBox;38 37 39 38 struct BidiRun; … … 357 356 void adjustForBorderFit(int x, int& left, int& right) const; // Helper function for borderFitAdjust 358 357 359 void markLinesDirtyInVerticalRange(int top, int bottom );358 void markLinesDirtyInVerticalRange(int top, int bottom, RootInlineBox* highest = 0); 360 359 361 360 void newLine(EClear); -
trunk/WebCore/rendering/RenderBlockLineLayout.cpp
r52931 r53420 1 1 /* 2 2 * Copyright (C) 2000 Lars Knoll (knoll@kde.org) 3 * Copyright (C) 2003, 2004, 2006, 2007, 2008, 2009 Apple Inc. All right reserved.3 * Copyright (C) 2003, 2004, 2006, 2007, 2008, 2009, 2010 Apple Inc. All right reserved. 4 4 * Copyright (C) 2010 Google Inc. All rights reserved. 5 5 * … … 31 31 #include "RenderListMarker.h" 32 32 #include "RenderView.h" 33 #include "TrailingFloatsRootInlineBox.h" 33 34 #include "break_lines.h" 34 35 #include <wtf/AlwaysInline.h> … … 1126 1127 // This has to be done before adding in the bottom border/padding, or the float will 1127 1128 // include the padding incorrectly. -dwh 1129 if (checkForFloatsFromLastLine) { 1130 TrailingFloatsRootInlineBox* trailingFloatsLineBox = new (renderArena()) TrailingFloatsRootInlineBox(this); 1131 m_lineBoxes.appendLineBox(trailingFloatsLineBox); 1132 trailingFloatsLineBox->setConstructed(); 1133 trailingFloatsLineBox->verticallyAlignBoxes(height()); 1134 trailingFloatsLineBox->setBlockHeight(height()); 1135 } 1128 1136 if (lastFloat) { 1129 1137 for (FloatingObject* f = m_floatingObjects->last(); f != lastFloat; f = m_floatingObjects->prev()) { … … 1188 1196 int floatTop = floats[floatIndex].rect.y(); 1189 1197 curr->markDirty(); 1190 markLinesDirtyInVerticalRange(curr->blockHeight(), floatTop + max(floats[floatIndex].rect.height(), newSize.height()) );1198 markLinesDirtyInVerticalRange(curr->blockHeight(), floatTop + max(floats[floatIndex].rect.height(), newSize.height()), curr); 1191 1199 floats[floatIndex].rect.setSize(newSize); 1192 1200 dirtiedByFloat = true;
Note:
See TracChangeset
for help on using the changeset viewer.