From 5a69e405fcae96b476cdd7a0767e87b94c0b7266 Mon Sep 17 00:00:00 2001 From: Rob Pike Date: Tue, 22 Oct 2013 16:47:48 -0700 Subject: acme: scroll a directory window when navigating if: - the cursor is on the last line - the navigation would put the cursor over the tag of the following text R=rsc CC=smckean83 https://codereview.appspot.com/15280045 --- src/cmd/acme/text.c | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) (limited to 'src/cmd/acme') diff --git a/src/cmd/acme/text.c b/src/cmd/acme/text.c index 3c08cd64..5a491b1e 100644 --- a/src/cmd/acme/text.c +++ b/src/cmd/acme/text.c @@ -808,6 +808,7 @@ texttype(Text *t, Rune r) switch(r){ case 0x06: /* ^F: complete */ case Kins: + typecommit(t); rp = textcomplete(t); if(rp == nil) return; @@ -1079,6 +1080,8 @@ textshow(Text *t, uint q0, uint q1, int doselect) { int qe; int nl; + int tsd; + int nc; uint q; if(t->what != Body){ @@ -1091,7 +1094,20 @@ textshow(Text *t, uint q0, uint q1, int doselect) if(doselect) textsetselect(t, q0, q1); qe = t->org+t->fr.nchars; - if(t->org<=q0 && (q0file->b.nc+t->ncache))) + tsd = FALSE; /* do we call textscrdraw? */ + nc = t->file->b.nc+t->ncache; + if(t->org <= q0){ + if(nc==0 || q0fr.nlinesfr.maxlines) + tsd = TRUE; + }else + tsd = TRUE; + } + } + if(tsd) textscrdraw(t); else{ if(t->w->nopen[QWevent] > 0) -- cgit v1.2.3