commit af4c27865c17dd274cc92cb4a464cb273e4e61ec from: rsc date: Thu May 10 19:27:45 2007 UTC Better tick management - no frdrawseltick calls. commit - 7a3533513e6f401bf62d94d4577922771090ffb4 commit + af4c27865c17dd274cc92cb4a464cb273e4e61ec blob - 6497eea66d7ab9f55e6f1b391717deadf8021c78 blob + f3707738745a548c181aca95f4ceb47daba7ec1a --- src/cmd/samterm/flayer.c +++ src/cmd/samterm/flayer.c @@ -285,14 +285,15 @@ flsetselect(Flayer *l, long p0, long p1) flfp0p1(l, &fp0, &fp1, &ticked); if(fp0==l->f.p0 && fp1==l->f.p1){ if(l->f.ticked != ticked) - frdrawseltick(&l->f, frptofchar(&l->f, fp0), fp0, fp1, 1, ticked); + frtick(&l->f, frptofchar(&l->f, fp0), ticked); return; } if(fp1<=l->f.p0 || fp0>=l->f.p1 || l->f.p0==l->f.p1 || fp0==fp1){ /* no overlap or trivial repainting */ frdrawsel(&l->f, frptofchar(&l->f, l->f.p0), l->f.p0, l->f.p1, 0); - frdrawsel(&l->f, frptofchar(&l->f, fp0), fp0, fp1, 1); + if(fp0 != fp1 || ticked) + frdrawsel(&l->f, frptofchar(&l->f, fp0), fp0, fp1, 1); goto Refresh; } /* the current selection and the desired selection overlap and are both non-empty */ @@ -323,7 +324,7 @@ flfp0p1(Flayer *l, ulong *pp0, ulong *pp1, int *ticked { long p0 = l->p0-l->origin, p1 = l->p1-l->origin; - *ticked = 1; + *ticked = p0 == p1; if(p0 < 0){ *ticked = 0; p0 = 0; @@ -429,7 +430,8 @@ flprepare(Flayer *l) frinsert(f, r, r+n, (ulong)0); frdrawsel(f, frptofchar(f, f->p0), f->p0, f->p1, 0); flfp0p1(l, &f->p0, &f->p1, &ticked); - frdrawseltick(f, frptofchar(f, f->p0), f->p0, f->p1, 1, ticked); + if(f->p0 != f->p1 || ticked) + frdrawsel(f, frptofchar(f, f->p0), f->p0, f->p1, 1); l->lastsr = ZR; scrdraw(l, scrtotal(l)); }