--UlVJffcvxoiEqYs2 Content-Type: text/plain; charset=us-ascii Dirk Mueller wrote: > We had that already and it was pointed out wrong. > see commits -r1.169 and -r1.171 htmlparser.cpp. We probably need a better > fix... Okay, the problem here is that the tag is special. It's a closed one... but it needs RenderPartObject::close() called. The ::close() method is called in the popBlock method but that is never called for closed object. In all other cases of closed objects, it doesn't need to be. Now when Embed was considered inline, then the ::close method was called... unfortunately, that was a hack in itself since Embed is inherently *not* an inline object -- it's a closed one. So, the trick here is to both have it a closed object AND call the ::close() method. The attached patch does that. It simply checks if the object is an ID_EMBED one and has a renderer after it's attached. If both are true, it does a renderer()->close() I tested this with several pages with and all worked great. -- Kurt Granroth | http://www.granroth.org KDE Developer/Evangelist | SuSE Labs Open Source Developer granroth@kde.org | granroth@suse.com KDE -- Putting a Friendly Face on Unix --UlVJffcvxoiEqYs2 Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename="htmlparser.diff" Index: htmlparser.cpp =================================================================== RCS file: /home/kde/kdelibs/khtml/html/htmlparser.cpp,v retrieving revision 1.174 diff -b -u -u -r1.174 htmlparser.cpp --- htmlparser.cpp 2000/09/27 19:46:34 1.174 +++ htmlparser.cpp 2000/09/30 19:58:03 @@ -110,7 +110,7 @@ 4, // ID_DL 3, // ID_DT 1, // ID_EM - 1, // ID_EMBED + 0, // ID_EMBED 3, // ID_FIELDSET 1, // ID_FONT 3, // ID_FORM @@ -380,7 +380,10 @@ n->attach(HTMLWidget); if(tagPriority[id] == 0 && n->renderer()) + { n->renderer()->calcMinMaxWidth(); + if (n->id() == ID_EMBED) n->renderer()->close(); + } } catch(DOMException exception) --UlVJffcvxoiEqYs2--