libframe: fix line wrap display glitch (Erik Quanstrom)
R=rsc http://codereview.appspot.com/3777044
This commit is contained in:
parent
839c052a93
commit
5e90ec75ee
1 changed files with 9 additions and 1 deletions
|
|
@ -9,7 +9,7 @@ frdelete(Frame *f, ulong p0, ulong p1)
|
|||
{
|
||||
Point pt0, pt1, ppt0;
|
||||
Frbox *b;
|
||||
int n0, n1, n;
|
||||
int n0, n1, n, w0;
|
||||
ulong cn1;
|
||||
Rectangle r;
|
||||
int nn0;
|
||||
|
|
@ -52,6 +52,7 @@ frdelete(Frame *f, ulong p0, ulong p1)
|
|||
r.max = pt0;
|
||||
r.max.y += f->font->height;
|
||||
if(b->nrune > 0){
|
||||
w0 = b->wid;
|
||||
if(n != b->nrune){
|
||||
_frsplitbox(f, n1, n);
|
||||
b = &f->box[n1];
|
||||
|
|
@ -59,6 +60,13 @@ frdelete(Frame *f, ulong p0, ulong p1)
|
|||
r.max.x += b->wid;
|
||||
draw(f->b, r, f->b, nil, pt1);
|
||||
cn1 += b->nrune;
|
||||
|
||||
/* blank remainder of line */
|
||||
r.min.x = r.max.x;
|
||||
r.max.x += w0 - b->wid;
|
||||
if(r.max.x > f->r.max.x)
|
||||
r.max.x = f->r.max.x;
|
||||
draw(f->b, r, f->cols[BACK], nil, r.min);
|
||||
}else{
|
||||
r.max.x += _frnewwid0(f, pt0, b);
|
||||
if(r.max.x > f->r.max.x)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue