diff options
author | Rob Kroeger <robkroeger@gmail.com> | 2012-10-16 13:57:43 -0400 |
---|---|---|
committer | Russ Cox <rsc@swtch.com> | 2012-10-16 13:57:43 -0400 |
commit | c3feb5c5c1ef2ddc014f77221a7ad10f140f7bfa (patch) | |
tree | 08382c962df41b8a221517920c61c2e47d34ed1e /src/libframe | |
parent | ef99c9f1ae9a620d997493558d5029d1d89f4a30 (diff) | |
download | plan9port-c3feb5c5c1ef2ddc014f77221a7ad10f140f7bfa.tar.gz plan9port-c3feb5c5c1ef2ddc014f77221a7ad10f140f7bfa.tar.bz2 plan9port-c3feb5c5c1ef2ddc014f77221a7ad10f140f7bfa.zip |
libframe: use correct text color when painting
R=rsc
CC=plan9port.codebot
http://codereview.appspot.com/6625065
Diffstat (limited to 'src/libframe')
-rw-r--r-- | src/libframe/frinsert.c | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/src/libframe/frinsert.c b/src/libframe/frinsert.c index ce9bfa0a..389677f6 100644 --- a/src/libframe/frinsert.c +++ b/src/libframe/frinsert.c @@ -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; @@ -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) @@ -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]; |