[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-9427-gc2be6fc

mitz at apple.com mitz at apple.com
Wed Dec 22 14:24:00 UTC 2010


The following commit has been merged in the debian/experimental branch:
commit 68f53abb0634eb9d4cea7702837aa5dafa1cd858
Author: mitz at apple.com <mitz at apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Thu Oct 7 20:59:40 2010 +0000

    <rdar://problem/8142645> REGRESSION (r47440): Printing Mail messages with large fonts does not fill page
    https://bugs.webkit.org/show_bug.cgi?id=47374
    
    Reviewed by Simon Fraser.
    
    In the legacy (paint-time pagination) printing model, when there are overlapping lines,
    adjustPageHeightDeprecated() was not idempotent, since the truncation point imposed by line n,
    namely the top of line n, was above the bottom of line n-1, so in the next round, line n-1
    moved the truncation point up again.
    
    * rendering/RenderLineBoxList.cpp:
    (WebCore::RenderLineBoxList::paint): Consider the top of the next line when deciding if the
    current line extends below the truncation point.
    
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@69336 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index 701d34d..89b86a6 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,19 @@
+2010-10-07  Dan Bernstein  <mitz at apple.com>
+
+        Reviewed by Simon Fraser.
+
+        <rdar://problem/8142645> REGRESSION (r47440): Printing Mail messages with large fonts does not fill page
+        https://bugs.webkit.org/show_bug.cgi?id=47374
+
+        In the legacy (paint-time pagination) printing model, when there are overlapping lines,
+        adjustPageHeightDeprecated() was not idempotent, since the truncation point imposed by line n,
+        namely the top of line n, was above the bottom of line n-1, so in the next round, line n-1
+        moved the truncation point up again.
+
+        * rendering/RenderLineBoxList.cpp:
+        (WebCore::RenderLineBoxList::paint): Consider the top of the next line when deciding if the
+        current line extends below the truncation point.
+
 2010-10-07  Simon Fraser  <simon.fraser at apple.com>
 
         Reviewed by Beth Dakin.
diff --git a/WebCore/rendering/RenderLineBoxList.cpp b/WebCore/rendering/RenderLineBoxList.cpp
index 760d2ea..1e58e63 100644
--- a/WebCore/rendering/RenderLineBoxList.cpp
+++ b/WebCore/rendering/RenderLineBoxList.cpp
@@ -203,6 +203,10 @@ void RenderLineBoxList::paint(RenderBoxModelObject* renderer, PaintInfo& paintIn
             }
             if (bottomForPaginationCheck - topForPaginationCheck <= v->printRect().height()) {
                 if (ty + bottomForPaginationCheck > v->printRect().bottom()) {
+                    if (RootInlineBox* nextRootBox = curr->root()->nextRootBox())
+                        bottomForPaginationCheck = min(bottomForPaginationCheck, min(nextRootBox->topVisibleOverflow(), nextRootBox->lineTop()));
+                }
+                if (ty + bottomForPaginationCheck > v->printRect().bottom()) {
                     if (ty + topForPaginationCheck < v->truncatedAt())
                         v->setBestTruncatedAt(ty + topForPaginationCheck, renderer);
                     // If we were able to truncate, don't paint.

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list