Summary: | problem with new slashdot.org design | ||
---|---|---|---|
Product: | [Applications] konqueror | Reporter: | Christophe Prud'Homme <prudhomm> |
Component: | khtml renderer | Assignee: | Konqueror Developers <konq-bugs> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | duchier, Stefan.Borggraefe |
Priority: | NOR | ||
Version: | unspecified | ||
Target Milestone: | --- | ||
Platform: | unspecified | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: | |||
Attachments: |
screen snapshot
screen snapshot |
Description
Christophe Prud'Homme
2006-06-07 13:54:14 UTC
Created attachment 16501 [details]
screen snapshot
menus are scrambled on the left
Created attachment 16502 [details]
screen snapshot
after resize, menus are ok
Confirmed. There are lot of things wrong with the redesign, but this is most likely a Konqueror bug. You also can mark the broken menu with your mouse + left button and it suddenly appears at the right position. on my machine, when initally loading the slashdot page the menus are properly laid out for a brief instant, and then all but the topmost get warped into the top left corner. subsequently, any operation affecting size gets the menus back into place. Switching between existing tabs sometimes has a (partial) effect, sometimes not. The content is misplaced after this JS-statement: this.el.style.overflow = "hidden"; It seems creating the newly created overflow clip gets an incorrect position. I am still unsure why, but so far the following patch can solve it: Index: xml/dom_nodeimpl.cpp =================================================================== --- xml/dom_nodeimpl.cpp (revision 550627) +++ xml/dom_nodeimpl.cpp (working copy) @@ -781,8 +781,10 @@ EDisplay display2 = s2 ? s2->display() : NONE; EPosition position1 = s1 ? s1->position() : STATIC; EPosition position2 = s2 ? s2->position() : STATIC; + EOverflow overflow1 = s1 ? s1->overflow() : OVISIBLE; + EOverflow overflow2 = s2 ? s2->overflow() : OVISIBLE; - if (display1 != display2 || position1 != position2) + if (display1 != display2 || position1 != position2 || overflow1 != overflow2) ch = Detach; else if ( !s1 || !s2 ) ch = Inherit; SVN commit 551201 by carewolf: Set position when inserting a new layer. BUG: 128738 M +2 -0 render_box.cpp --- branches/KDE/3.5/kdelibs/khtml/rendering/render_box.cpp #551200:551201 @@ -159,6 +159,8 @@ if (!m_layer) { m_layer = new (renderArena()) RenderLayer(this); m_layer->insertOnlyThisLayer(); + if (parent() && containingBlock()) + m_layer->updateLayerPosition(); } } else if (m_layer && !isCanvas()) { |