Version: (using KDE KDE 3.1.94) Installed from: Mandrake RPMs Compiler: gcc 3.3.x compiled by Mandrakesoft OS: Linux This is a regresson w.r.t. kde 3.1.4. http://mail.beteor.nl/servlet/webacc is the login screen of my company's webmail. In the login screen the login block is shifted down with the new Konqueror. See two attachments. The vertical shift also takes place after I logged in, making it impossible to select "send an email" because that element is shifted below the bottom of the page. Thanks for looking into this.
Created an attachment (id=3699) [details] this shows the erroneous vertical space
Created an attachment (id=3700) [details] mozilla shows the page correctly (same as konqueror 3.1.4)
Bug confirmed here. Version: 3.1.94 OS: Linux Gentoo Compiler: gcc (GCC) 3.2.3 20030422 (Gentoo Linux 1.4 3.2.3-r3, propolice) What seems to trigger the bug is an empty table cell (<TR><TD><BR></TD></TR>) above the form. If you remove this code altogether, Konqueror's rendering is the same as Mozilla's (both a little off due to the cell's removal). Replacing this code with <TR></TR> is however sufficient to trigger the bug.
Created an attachment (id=3708) [details] Test case for the bug Here is a test case for the bug. In Mozilla, it shows two lines of text at the top of the page. In Konqueror, the first line is at the top of the page and the second one much further down.
As of release 3.2.0rc1, this bug is still not solved.
This still does not work with 3.2RC Cannot read my mail with my companies web-interface :-( Thx for all the hard work!
*** Bug 72689 has been marked as a duplicate of this bug. ***
Is this bug related to (dup of) bug #22657? Cheers Jo
*** Bug 92059 has been marked as a duplicate of this bug. ***
*** Bug 75153 has been marked as a duplicate of this bug. ***
*** Bug 81354 has been marked as a duplicate of this bug. ***
CVS commit by carewolf: Calculate percentage height from containing block and not viewport. Fixes most of the bugs that have been incorrectly closed as duplicates of 70418, and the email composer in gmail.com. 70418 itself is a different bug though. BUG: 75153, 81354, 72689, 92059 CCBUG: 70418 M +1 -1 render_box.h 1.83 M +2 -33 render_table.cpp 1.263 --- kdelibs/khtml/rendering/render_box.h #1.82:1.83 @@ -114,5 +114,5 @@ public: RenderBlock* createAnonymousBlock(); -private: +protected: int calcBoxWidth(int w) const; int calcBoxHeight(int h) const; --- kdelibs/khtml/rendering/render_table.cpp #1.262:1.263 @@ -296,5 +296,4 @@ void RenderTable::layout() m_height = oldHeight; - // html tables with percent height are relative to view Length h = style()->height(); int th = -(bpTop + bpBottom); // Tables size as though CSS height includes border/padding. @@ -303,36 +302,6 @@ void RenderTable::layout() else if (h.isFixed()) th += h.value(); - else if (h.isPercent()) { - RenderObject* c = containingBlock(); - for ( ; - !c->isCanvas() && !c->isBody() && !c->isTableCell() && - !c->isPositioned() && c->isFloating(); - c = c->containingBlock()) { - Length ch = c->style()->height(); - if (ch.isFixed()) { - th += h.width(ch.value()); - break; - } - } - - if (c->isTableCell()) { - RenderTableCell* cell = static_cast<RenderTableCell*>(c); - int cellHeight = cell->cellPercentageHeight(); - if (cellHeight) - th += h.width(cellHeight); - } - else { - Length ch = c->style()->height(); - if (ch.isFixed()) - th += h.width(ch.value()); - else { - // we need to substract out the margins of this block. -dwh - th += h.width(viewRect().height() - c->marginBottom() - c->marginTop()); - // not really, but this way the view height change - // gets propagated correctly - setOverhangingContents(); - } - } - } + else if (h.isPercent()) + th += calcPercentageHeight(h); // layout rows
CVS commit by carewolf: Improve distribution of excess height. - Do not distribute to empty variable rows to start with - Add extra distribution step to handle table with _only_ empty variable rows - Add extra distribution step to handle round-off excess BUG: 70418 PS: Please note that we still don't render mail.beteor.nl/servlet/webacc like IE does, but we not have fewer problems on that page than Mozilla does. M +18 -2 ChangeLog 1.334 M +47 -12 rendering/render_table.cpp 1.266 M +1 -0 rendering/render_table.h 1.108
You need to log in before you can comment on or make changes to this bug.