From kfm-devel Tue Mar 19 05:54:53 2002 From: Pavel Troller Date: Tue, 19 Mar 2002 05:54:53 +0000 To: kfm-devel Subject: Re: Current konqueror misrendering X-MARC-Message: https://marc.info/?l=kfm-devel&m=101651779102778 > Hi! > I was waiting if somebody will react on this, but nobody did... > Today I noticed khtml update which made my version of render_flow.cpp > colliding. I updated it from cvs, built and http://www.mobilmania.cz > is misrendered again. _P_L_E_A_S_E_ could somebody find where is the > problem ? Now I'm in a big stress in my work, I don't have hours of > free time to make a test case... > With regards, Pavel Troller > Hi again! Please, could somebody look at this ? Yes, I'm really dull, but I can't isolate a simple test case from the page. When I remove its parts, the rendering improves and finally it's ok, although the page is still too complex to be the test case. I really gave many hours of work to this problem but there has been no creative feedback from you anytime. Again, I've found a place in the source which makes this misrendering. I hope that when I point You to the exact place, You can deduce, which feature in the page is causing problems, and eventually fix the source ? Or am I wrong ? Simply, the following patch makes the following to the page: - Both side columns are rendered OK. - The main middle column has a big space on top, before the first perex starts. Yes, it's another kind of misrendering, but it's not fatal as the previous one. I also tried to display the page in Netscape 4.72 (Linux), Mozilla 0.9.6 (Linux) and IE 6.0 (Linux :-) i.e. NT4.0 with vmware). No browser failed in basic layouting (although there were other problems, namely in font sizes - the worst results gave Mozilla). Mobilmania.cz is one of the most popular sites dedicated to mobile phones in Czech republic (and mobiles are VERY popular there) so misrendering such a site makes really big impact for konqueror users there. The patch fixing the problem: Index: render_flow.cpp =================================================================== RCS file: /home/kde/kdelibs/khtml/rendering/render_flow.cpp,v retrieving revision 1.271 diff -u -3 -p -r1.271 render_flow.cpp --- render_flow.cpp 2002/03/14 08:50:49 1.271 +++ render_flow.cpp 2002/03/19 06:36:03 @@ -372,12 +372,13 @@ void RenderFlow::layoutBlockChildren( bo if ( relayoutChildren || floatBottom() > m_y || (child->isReplaced() && (child->style()->width().isPercent() || child->style()->height().isPercent()))) child->setLayouted(false); +#if 0 if ( child->style()->flowAroundFloats() && !child->isFloating() && style()->width().isFixed() && child->minWidth() > lineWidth( m_height ) ) { m_height = floatBottom(); prevMargin = 0; } - +#endif // kdDebug( 6040 ) << " " << child->renderName() << " loop " << child << ", " << child->isInline() << ", " << child->layouted() << endl; // kdDebug( 6040 ) << t.elapsed() << endl; // ### might be some layouts are done two times... FIX that. With regards, Pavel Troller