Committed.

Dom

On Fri, 2002-03-22 at 16:56, William Lachance wrote:
> This fixes the problem where italic characters were being redrawn incorrectly 
> at boundaries. The problem was that we were resetting the fonts, but not the 
> colours. This patch adds a sprinkling of m_pG->setColor(m_colorFG) to fix 
> this problem. 
> 
> [ someone more familiar than me with fp_textRun may want to review this patch 
> before committing. But it seems to work fine. ]
> 
> ----
> 

> --- fp_TextRun.cpp    Fri Mar 22 16:45:59 2002
> +++ fp_TextRun.cpp.colourSet  Fri Mar 22 16:31:04 2002
> @@ -1545,7 +1545,7 @@
>  
>       /*
>         TODO We should add more possibilities for text placement here.
> -       It shouldn't be too hard.  Just adjust the math a little.  
> +       It shouldn't be too hard.  Just adjust the math a little.
>         See bug 1297
>       */
>       
> @@ -1697,8 +1697,8 @@
>                               ytemp += pT->m_iDescent /* * 3/2 */;
>                       }
>  
> -                     if(pT->m_bIsOverhanging)
> -                             pT->_drawFirstChar(pDA->xoff + m_iWidth,ytemp);
> +                             if(pT->m_bIsOverhanging)
> +                             pT->_drawFirstChar(pDA->xoff + m_iWidth,ytemp);
>               }
>  
>               if(pPrev && pPrev->getType() == FPRUN_TEXT)
> @@ -1715,12 +1715,14 @@
>                       }
>  
>                       if(pT->m_bIsOverhanging)
> -                             pT->_drawLastChar(pDA->xoff,ytemp, pgbCharWidths);
> +                             pT->_drawLastChar(pDA->xoff,ytemp, pgbCharWidths);
> +                
>               }
>       }
>  
>       // now draw the whole string
> -     m_pG->setFont(m_pScreenFont);
> +       m_pG->setFont(m_pScreenFont);
> +       m_pG->setColor(m_colorFG); // set colour just in case we drew a first/last 
>char with a diff colour
>  
>  #ifdef BIDI_ENABLED
>       // since we have the visual string in the draw buffer, we just call 
>m_pGr->drawChars()
> @@ -2035,8 +2037,10 @@
>       if(!m_iLen)
>               return;
>  
> -     // have to sent font, since we were called from a run using different font     
> 
> -     m_pG->setFont(m_pScreenFont);
> +      // have to sent font (and colour!), since we were called from a run using 
>different font       
> +      m_pG->setFont(m_pScreenFont);
> +      m_pG->setColor(m_colorFG);
> +
>  #ifdef BIDI_ENABLED
>       FriBidiCharType iVisDirection = getVisDirection();
>  
> @@ -2067,8 +2071,10 @@
>       if(!m_iLen)
>               return;
>       
> -     // have to sent font, since we were called from a run using different font     
> 
> -     m_pG->setFont(m_pScreenFont);
> +     // have to sent font (and colour!), since we were called from a run using 
>different font        
> +       m_pG->setFont(m_pScreenFont);
> +       m_pG->setColor(m_colorFG);
> +
>  #ifdef BIDI_ENABLED
>       if(!s_bBidiOS)
>       {

Attachment: signature.asc
Description: This is a digitally signed message part

Reply via email to