tacme: tag resize nits - plan9port - [fork] Plan 9 from user space
git clone git://src.adamsgaard.dk/plan9port
Log
Files
Refs
README
LICENSE
---
commit fdddf6f01849a37d70b15581cd3e9713476b40ec
parent 0cd1385d9f8a151fa1e42dfbac4d16d35a6056d0
Author: Russ Cox 
Date:   Fri,  7 Mar 2008 07:48:08 -0500

acme: tag resize nits

Diffstat:
  M src/cmd/acme/wind.c                 |      18 ++++++++++++------

1 file changed, 12 insertions(+), 6 deletions(-)
---
diff --git a/src/cmd/acme/wind.c b/src/cmd/acme/wind.c
t@@ -134,10 +134,11 @@ wintaglines(Window *w, Rectangle r)
 
         /* if tag ends with \n, include empty line at end for typing */
         n = w->tag.fr.nlines;
-        if(w->tag.file->b.nc > 0)
+        if(w->tag.file->b.nc > 0){
                 bufread(&w->tag.file->b, w->tag.file->b.nc-1, &rune, 1);
-        if(rune == '\n')
-                n++;
+                if(rune == '\n')
+                        n++;
+        }
         if(n == 0)
                 n = 1;
         return n;
t@@ -162,10 +163,8 @@ if(0) fprint(2, "winresize %d %R safe=%d keep=%d h=%d\n", w->id, r, safe, keepex
         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(!safe || !w->tagsafe || !eqrect(w->tag.all, r1)){
-
+        if(!safe || !w->tagsafe || !eqrect(w->tag.all, r1))
                 w->taglines = wintaglines(w, r);
-        }
 /* END TAG */
 
         r1 = r;
t@@ -182,11 +181,18 @@ if(0) fprint(2, "=> %R (%R)\n", w->tag.all, w->tag.fr.r);
                 windrawbutton(w);
                 w->tagsafe = TRUE;
 /* TAG */
+                /* If mouse is in tag, pull up as tag closes. */
                 if(mouseintag && !ptinrect(mouse->xy, w->tag.all)){
                         p = mouse->xy;
                         p.y = w->tag.all.max.y-3;
                         moveto(mousectl, p);
                 }
+                /* If mouse is in body, push down as tag expands. */
+                if(!mouseintag && ptinrect(mouse->xy, w->tag.all)){
+                        p = mouse->xy;
+                        p.y = w->tag.all.max.y+3;
+                        moveto(mousectl, p);
+                }
 /* END TAG */
         }