commit ad80f8701dbe465dba573051f725729375947a39 from: rsc date: Fri Dec 16 19:34:13 2005 UTC tag tweak commit - d3285dcb5cd45ccea1e9a7cf439f61f771f08274 commit + ad80f8701dbe465dba573051f725729375947a39 blob - ceca319d1dafa5fdd2d7bfc4e5ae91a38ede89aa blob + a6651743ab64f8b4654e171c4ecd73c7a775d904 --- src/cmd/acme/wind.c +++ src/cmd/acme/wind.c @@ -117,25 +117,15 @@ wintaglines(Window *w, Rectangle r) bufread(&w->tag.file->b, w->tag.file->b.nc-1, &rune, 1); if(rune == '\n') n++; - - /* cannot magically shrink tag - would lose focus */ - if(n < w->taglines) - n = w->taglines; - - /* on initial expansion, create an extra line */ - if(n < 2){ - rune = '\n'; - textinsert(&w->tag, w->tag.file->b.nc, &rune, 1, TRUE); - n = 2; - } return n; } int winresize(Window *w, Rectangle r, int safe, int keepextra) { - int y; + int y, mouseintag; Image *b; + Point p; Rectangle br, r1; if(0) fprint(2, "winresize %d %R safe=%d keep=%d h=%d\n", w->id, r, safe, keepextra, font->height); @@ -149,7 +139,9 @@ if(0) fprint(2, "winresize %d %R safe=%d keep=%d h=%d\ r1 = r; r1.max.y = min(r.max.y, r1.min.y + w->taglines*font->height); y = r1.max.y; + mouseintag = ptinrect(mouse->xy, w->tag.all); if(1 || !safe || !w->tagsafe || !eqrect(w->tag.all, r1)){ + w->taglines = wintaglines(w, r); w->tagsafe = TRUE; } @@ -170,6 +162,13 @@ if(0) fprint(2, "=> %R (%R)\n", w->tag.all, w->tag.fr. br.max.x = br.min.x + Dx(b->r); br.max.y = br.min.y + Dy(b->r); draw(screen, br, b, nil, b->r.min); +/* TAG */ + if(mouseintag && !ptinrect(mouse->xy, w->tag.all)){ + p = mouse->xy; + p.y = w->tag.all.max.y-3; + moveto(mousectl, p); + } +/* END TAG */ }