Version: 4.0 (using KDE 3.1.94 (CVS >= 20031206), SuSE) Compiler: gcc version 3.3.1 (SuSE Linux) OS: Linux (i686) release 2.6.0-1-default Most form elements on large forms are not behaving correctly. It's not possible to enter text into textfields, clicking a submit button does not submit the form etc. Here's one example: http://www.lillepuu.com/ma_bug.html Buttons are in the middle of the page under the table so scroll right. When I reduced number of the table columns to about 5-6, then all the elements were behaving correctly.
Subject: kdelibs/khtml CVS commit by knoll: * rendering/render_table.cpp: set overflowWidth to width when layouting (#72420) * xml/dom2_eventsimpl.cpp rendering/render_block.cpp nodeAtPoint() should always use contents coordinates. Reviewed by Dirk CCMAIL: 72420-done@bugs.kde.org M +7 -0 ChangeLog 1.159 M +0 -4 rendering/render_block.cpp 1.20 M +1 -0 rendering/render_table.cpp 1.251 M +5 -1 xml/dom2_eventsimpl.cpp 1.43 --- kdelibs/khtml/ChangeLog #1.158:1.159 @@ -1,2 +1,9 @@ +2004-01-15 Lars Knoll <knoll@kde.org> + + * rendering/render_table.cpp: set overflowWidth to width + when layouting (#72420) + * xml/dom2_eventsimpl.cpp rendering/render_block.cpp + nodeAtPoint() should always use contents coordinates. + 2004-01-14 Dirk Mueller <mueller@kde.org> --- kdelibs/khtml/rendering/render_block.cpp #1.19:1.20 @@ -1856,8 +1856,4 @@ bool RenderBlock::nodeAtPoint(NodeInfo& if (style()->hidesOverflow() && m_layer) m_layer->subtractScrollOffset(stx, sty); - if (isCanvas()) { - stx += static_cast<RenderCanvas*>(this)->view()->contentsX(); - sty += static_cast<RenderCanvas*>(this)->view()->contentsY(); - } FloatingObject* o; QPtrListIterator<FloatingObject> it(*m_floatingObjects); --- kdelibs/khtml/rendering/render_table.cpp #1.250:1.251 @@ -245,4 +245,5 @@ void RenderTable::layout() //int oldWidth = m_width; calcWidth(); + m_overflowWidth = m_width; // the optimization below doesn't work since the internal table --- kdelibs/khtml/xml/dom2_eventsimpl.cpp #1.42:1.43 @@ -29,4 +29,5 @@ #include "xml/dom_docimpl.h" #include "rendering/render_layer.h" +#include "khtmlview.h" #include <kdebug.h> @@ -361,5 +362,8 @@ void MouseEventImpl::computeLayerPos() if (doc) { khtml::RenderObject::NodeInfo renderInfo(true, false); - doc->renderer()->layer()->nodeAtPoint(renderInfo, m_clientX, m_clientY); + + int x = doc->view()->contentsX(); + int y = doc->view()->contentsY(); + doc->renderer()->layer()->nodeAtPoint(renderInfo, m_clientX + x, m_clientY + y); NodeImpl *node = renderInfo.innerNonSharedNode();