Simplified the scrolldownline function. - sam - An updated version of the sam t… | |
git clone git://vernunftzentrum.de/sam.git | |
Log | |
Files | |
Refs | |
LICENSE | |
--- | |
commit 9e3cf08d5206503fa620136bd8b89528f5ca882c | |
parent 1b35b31c5c3faf98c9a1d239874b41454dd3859e | |
Author: Rob King <[email protected]> | |
Date: Thu, 1 Sep 2016 17:15:03 -0500 | |
Simplified the scrolldownline function. | |
Diffstat: | |
doc/sam.1 | 6 ++++++ | |
samterm/main.c | 12 +++++++----- | |
2 files changed, 13 insertions(+), 5 deletions(-) | |
--- | |
diff --git a/doc/sam.1 b/doc/sam.1 | |
@@ -1029,6 +1029,12 @@ Stores output of shell commands executed by | |
.Xr ed 1 | |
.Sh BUGS | |
.Pp | |
+When using a mouse chord that targets a layer that isn't the front layer | |
+.Pq "e.g. when scrolling using the mouse wheel on a background layer" "," | |
+scrolling may jump unexpectedly if the layer was first moved to a lower part o… | |
+.Pq "e.g. by searching" | |
+and then scrolled while still in the background. | |
+.Pp | |
The only human language in which colors may be specified is English. | |
.Pp | |
The only human language in which output is generated is English. | |
diff --git a/samterm/main.c b/samterm/main.c | |
@@ -539,13 +539,15 @@ cmdscrollupline(Flayer *l, long a, Text *t) | |
static long | |
cmdscrolldownline(Flayer *l, long a, Text *t) | |
{ | |
- long tot = scrtotal(l); | |
- long p0 = l->origin + frcharofpt(&l->f, Pt(l->f.r.min.x, l->f.r.min.y + l-… | |
- long p1 = l->origin + frcharofpt(&l->f, Pt(l->f.r.min.x, l->f.r.max.y - l-… | |
+ long e = t->rasp.nrunes; | |
- if (p0 < tot && p1 < tot) | |
- horigin(t->tag, p0, l); | |
+ if (l->origin + l->f.nchars < e){ | |
+ long x = l->origin; | |
+ while (x + l->f.nchars < e && raspc(&t->rasp, x) != '\n') | |
+ x++; | |
+ horigin(t->tag, x + 1, l); | |
+ } | |
return a; | |
} | |