tlibframe: use correct text color when painting - plan9port - [fork] Plan 9 from user space
 (HTM) git clone git://src.adamsgaard.dk/plan9port
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit c3feb5c5c1ef2ddc014f77221a7ad10f140f7bfa
 (DIR) parent ef99c9f1ae9a620d997493558d5029d1d89f4a30
 (HTM) Author: Rob Kroeger <robkroeger@gmail.com>
       Date:   Tue, 16 Oct 2012 13:57:43 -0400
       
       libframe: use correct text color when painting
       
       R=rsc
       CC=plan9port.codebot
       http://codereview.appspot.com/6625065
       
       Diffstat:
         M src/libframe/frinsert.c             |      18 ++++++++++++------
       
       1 file changed, 12 insertions(+), 6 deletions(-)
       ---
 (DIR) diff --git a/src/libframe/frinsert.c b/src/libframe/frinsert.c
       t@@ -101,7 +101,7 @@ frinsert(Frame *f, Rune *sp, Rune *ep, ulong p0)
                Frbox *b;
                int n, n0, nn0, y;
                ulong cn0;
       -        Image *col;
       +        Image *col, *tcol;
                Rectangle r;
                static struct{
                        Point pt0, pt1;
       t@@ -245,10 +245,13 @@ frinsert(Frame *f, Rune *sp, Rune *ep, ulong p0)
                                if(r.max.x >= f->r.max.x)
                                        r.max.x = f->r.max.x;
                                cn0--;
       -                        if(f->p0<=cn0 && cn0<f->p1)        /* b is inside selection */
       +                        if(f->p0<=cn0 && cn0<f->p1){ /* b is inside selection */
                                        col = f->cols[HIGH];
       -                        else
       +                                tcol = f->cols[HTEXT];
       +                        }else{
                                        col = f->cols[BACK];
       +                                tcol = f->cols[TEXT];
       +                        }
                                draw(f->b, r, col, nil, r.min);
                                y = 0;
                                if(pt.x == f->r.min.x)
       t@@ -256,12 +259,15 @@ frinsert(Frame *f, Rune *sp, Rune *ep, ulong p0)
                        }
                }
                /* insertion can extend the selection, so the condition here is different */
       -        if(f->p0<p0 && p0<=f->p1)
       +        if(f->p0<p0 && p0<=f->p1){
                        col = f->cols[HIGH];
       -        else
       +                tcol = f->cols[HTEXT];
       +        }else{
                        col = f->cols[BACK];
       +                tcol = f->cols[TEXT];
       +        }
                frselectpaint(f, ppt0, ppt1, col);
       -        _frdrawtext(&frame, ppt0, f->cols[TEXT], col);
       +        _frdrawtext(&frame, ppt0, tcol, col);
                _fraddbox(f, nn0, frame.nbox);
                for(n=0; n<frame.nbox; n++)
                        f->box[nn0+n] = frame.box[n];