[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-bugs-dist
Subject:    [Bug 119167] [test case] page rendered incorrectly at larger font
From:       Charles Samuels <charles () kde ! org>
Date:       2006-09-30 7:30:05
Message-ID: 20060930073005.17917.qmail () ktown ! kde ! org
[Download RAW message or body]

------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.
         
http://bugs.kde.org/show_bug.cgi?id=119167         
charles kde org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|                            |FIXED



------- Additional Comments From charles kde org  2006-09-30 09:29 -------
SVN commit 590440 by charles:

fix Bug 119167: page rendered incorrectly at larger font sizes

see the comment within for info

BUG:119167

now I'm gonna need to find some gauze and stop the blood from gushing out of my eyes \
and ears.



 M  +10 -3     render_block.cpp  


--- branches/KDE/3.5/kdelibs/khtml/rendering/render_block.cpp #590439:590440
 @ -223,15 +223,22  @
         // punctuation and white-space
         if(oldText->l >= 1) {
             oldText->ref();
-            unsigned int length = 0;
+            // begin: we need skip leading whitespace so that \
RenderBlock::findNextLineBreak +            // won't think we're continuing from a \
previous run  +            unsigned int begin = 0; // the position that first-letter \
begins +            unsigned int length = 0; // the position that "the rest" begins
+            while ( length < oldText->l && (oldText->s+length)->isSpace() )
+                length++;
+            begin = length;
             while ( length < oldText->l &&
-                    ( (oldText->s+length)->isSpace() || \
(oldText->s+length)->isPunct()) ) +                    ( \
(oldText->s+length)->isPunct()) || (oldText->s+length)->isSpace() )  length++;
             if ( length < oldText->l &&
                     !( (oldText->s+length)->isSpace() || \
(oldText->s+length)->isPunct() ))  length++;
             while ( length < oldText->l && (oldText->s+length)->isMark() )
                 length++;
+
             // we need to generated a remainingText object even if no text is left
             // because it holds the place and style for the old textObj
             RenderTextFragment* remainingText =
 @ -246,7 +253,7  @
             firstLetterContainer->addChild(remainingText, nextObj);
 
             RenderTextFragment* letter =
-                new (renderArena()) RenderTextFragment(remainingText->node(), \
oldText, 0, length); +                new (renderArena()) \
RenderTextFragment(remainingText->node(), oldText, begin, length-begin);  \
letter->setIsAnonymous( remainingText->isAnonymous() );  RenderStyle* newStyle = new \
RenderStyle();  newStyle->inheritFrom(pseudoStyle);


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic