aboutsummaryrefslogtreecommitdiff
path: root/src/libframe
diff options
context:
space:
mode:
authorRob Kroeger <robkroeger@gmail.com>2012-10-16 13:57:43 -0400
committerRuss Cox <rsc@swtch.com>2012-10-16 13:57:43 -0400
commitc3feb5c5c1ef2ddc014f77221a7ad10f140f7bfa (patch)
tree08382c962df41b8a221517920c61c2e47d34ed1e /src/libframe
parentef99c9f1ae9a620d997493558d5029d1d89f4a30 (diff)
downloadplan9port-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.c18
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];