aboutsummaryrefslogtreecommitdiff
path: root/st.c
diff options
context:
space:
mode:
authorMarcel Screm <marcel@marcelscrem.com>2025-12-28 12:24:41 +0100
committerMarcel Screm <marcel@marcelscrem.com>2025-12-28 12:24:41 +0100
commite02051e910c77690cb2aaaf12a9ebe4fddfa8309 (patch)
treef2a3ae9030caade358e0e2277c9ba212eac01e97 /st.c
parent9b35a7d9c3e05d78819421f376f08505edec38d2 (diff)
added scrollback-float patch
Diffstat (limited to 'st.c')
-rw-r--r--st.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/st.c b/st.c
index af45169..b034844 100644
--- a/st.c
+++ b/st.c
@@ -1087,14 +1087,14 @@ tswapscreen(void)
void
kscrollup(const Arg *a)
{
- int n = a->i;
+ float n = a->f;
if (IS_SET(MODE_ALTSCREEN))
return;
- if (n < 0) n = (-n) * term.row;
+ if (n < 0) n = MAX((-n) * term.row, 1);
if (n > TSCREEN.size - term.row - TSCREEN.off) n = TSCREEN.size - term.row - TSCREEN.off;
- while (!TLINE(-n)) --n;
+ while (!TLINE((int)-n)) --n;
TSCREEN.off += n;
selscroll(0, n);
tfulldirt();
@@ -1104,12 +1104,12 @@ void
kscrolldown(const Arg *a)
{
- int n = a->i;
+ float n = a->f;
if (IS_SET(MODE_ALTSCREEN))
return;
- if (n < 0) n = (-n) * term.row;
+ if (n < 0) n = MAX((-n) * term.row, 1);
if (n > TSCREEN.off) n = TSCREEN.off;
TSCREEN.off -= n;
selscroll(0, -n);