aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/acme/xfid.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/cmd/acme/xfid.c')
-rw-r--r--src/cmd/acme/xfid.c14
1 files changed, 3 insertions, 11 deletions
diff --git a/src/cmd/acme/xfid.c b/src/cmd/acme/xfid.c
index db5d54b0..18b06dd1 100644
--- a/src/cmd/acme/xfid.c
+++ b/src/cmd/acme/xfid.c
@@ -510,8 +510,8 @@ xfidwrite(Xfid *x)
if(tq1 >= q0)
tq1 += nr;
textsetselect(t, tq0, tq1);
- if(!t->w->noscroll)
- textshow(t, q0, q0+nr, 0);
+ if(t->org <= q0 && q0 <= t->org+t->fr.nchars)
+ textshow(t, q0+nr, q0+nr, 0);
textscrdraw(t);
winsettag(w);
free(r);
@@ -568,7 +568,7 @@ xfidwrite(Xfid *x)
}
q0 = textbsinsert(t, q0, r, nr, TRUE, &nr);
textsetselect(t, t->q0, t->q1); /* insert could leave it somewhere else */
- if(qid!=QWwrsel && !t->w->noscroll)
+ if(qid!=QWwrsel && t->org <= q0 && q0 < t->org+t->fr.nchars)
textshow(t, q0+nr, q0+nr, 1);
textscrdraw(t);
}
@@ -768,18 +768,10 @@ out:
w->filemenu = TRUE;
m = 4;
}else
- if(strncmp(p, "noscroll", 8) == 0){ /* turn off automatic scrolling */
- w->noscroll = TRUE;
- m = 8;
- }else
if(strncmp(p, "cleartag", 8) == 0){ /* wipe tag right of bar */
wincleartag(w);
settag = TRUE;
m = 8;
- }else
- if(strncmp(p, "scroll", 6) == 0){ /* turn on automatic scrolling (writes to body only) */
- w->noscroll = FALSE;
- m = 6;
}else{
err = Ebadctl;
break;