Version: 3.5.3 (using KDE 3.5.3, Debian Package 4:3.5.3-1 (testing/unstable)) Compiler: Target: x86_64-linux-gnu OS: Linux (x86_64) release 2.6.16-1-amd64-k8-smp slashdot.org just changed its design. konqueror has problems showing it properly: 1- some of the menus on the left are aggregated at the top left of the page 2- if the window is resized, then the menus appear properly at their rightful place. 3- if the windows was resized and menus ok, and I click on a new menu item, the same problem described in (1) occurs and I need to resize like in (2) to correct it. Since the rendering bug gets fixed when the konqueror window is resized, my conclusion is that it is a konqueror bug. Best regards
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()) {