[prev in list] [next in list] [prev in thread] [next in thread] 

List:       konq-bugs
Subject:    [Bug 94050] [test case] tables shift on bbc.co.uk/eastenders
From:       Germain Garand <germain () ebooksfrance ! com>
Date:       2005-03-04 13:09:05
Message-ID: 20050304130905.1459.qmail () ktown ! kde ! org
[Download RAW message or body]

------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.
         
http://bugs.kde.org/show_bug.cgi?id=94050         
germain ebooksfrance com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|REOPENED                    |RESOLVED
         Resolution|                            |FIXED



------- Additional Comments From germain ebooksfrance com  2005-03-04 14:09 -------
CVS commit by ggarand: 

percent width children behaves like fixed width children with regard to float
clearing. In both cases we need to check if current line as enough width to
hold the (flowing-around-float) child. If not, we need to clear.

BUG: 94050


  M +7 -0      ChangeLog   1.396
  M +12 -3     rendering/render_block.cpp   1.64


--- kdelibs/khtml/ChangeLog  #1.395:1.396
 @ -1,4 +1,11  @
 2005-03-04  Germain Garand  <germain ebooksfrance org>
 
+        * rendering/render_block.cpp (layoutBlockChildren): percent width
+        children behaves like fixed width children with regard to float
+        clearing. In both cases we need to check if current line as enough width to
+        hold the (flowing-around-float) child. If not, we need to clear.
+
+2005-03-04  Germain Garand  <germain ebooksfrance org>
+
         * rendering/render_table.cpp (calcWidth): always use lineWidth for
         table margins calculation (#89900)

--- kdelibs/khtml/rendering/render_block.cpp  #1.63:1.64
 @ -843,6 +843,15  @ void RenderBlock::layoutBlockChildren( b
         // a positioned or floating child.
         int fb = floatBottom();
-        if ( child->flowAroundFloats() && style()->width().isFixed() && \
                child->minWidth() > lineWidth( m_height ) ) {
-            if (fb > m_height) {
+        if ( child->flowAroundFloats() && !style()->width().isVariable()) {
+            bool doClear = false;
+            if (child->minWidth() > lineWidth( m_height ))
+                doClear = true;
+            else if (child->style()->width().isPercent()) {
+                int oldw = child->width();
+                child->calcWidth();
+                doClear = (child->width() > lineWidth( m_height ));
+                child->setWidth( oldw );
+            }
+            if (doClear && fb > m_height) {
                 m_height = fb;
                 shouldCollapseChild = false;
 @ -853,5 +862,5  @ void RenderBlock::layoutBlockChildren( b
 
         // take care in case we inherited floats
-        if (fb > m_height)
+        if (fb > m_height && !child->flowAroundFloats())
             child->setChildNeedsLayout(true);
_______________________________________________
Konq-bugs mailing list
Konq-bugs@mail.kde.org
https://mail.kde.org/mailman/listinfo/konq-bugs


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic