From: Dom Lachowicz (doml@appligent.com)
Date: Fri Mar 22 2002 - 17:04:52 EST
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)
> {
This archive was generated by hypermail 2.1.4 : Fri Mar 22 2002 - 17:06:38 EST