summaryrefslogtreecommitdiff
path: root/archive/st/patch/scrollback.c
diff options
context:
space:
mode:
authorauric <auric7@protonmail.com>2025-09-08 21:27:55 -0500
committerauric <auric7@protonmail.com>2025-09-08 21:27:55 -0500
commitde07b49b3249da05605f8c802b991a8588ab63b3 (patch)
tree295d6003f08dfce1d1b779892ce9c0be97d426a3 /archive/st/patch/scrollback.c
parent04cfeeb799b4ee6ac990e5d6e1b5302251133d77 (diff)
parente61da07522a060da98fa3a56db3d0360469b26cf (diff)
Resolved conflict, indulging new file layout
Diffstat (limited to 'archive/st/patch/scrollback.c')
-rw-r--r--archive/st/patch/scrollback.c55
1 files changed, 55 insertions, 0 deletions
diff --git a/archive/st/patch/scrollback.c b/archive/st/patch/scrollback.c
new file mode 100644
index 0000000..2644cfe
--- /dev/null
+++ b/archive/st/patch/scrollback.c
@@ -0,0 +1,55 @@
+void
+kscrolldown(const Arg* a)
+{
+ int n = a->i;
+
+ if (n < 0)
+ n = term.row + n;
+
+ if (n > term.scr)
+ n = term.scr;
+
+ if (term.scr > 0) {
+ term.scr -= n;
+ selscroll(0, -n);
+ tfulldirt();
+ }
+
+ #if SIXEL_PATCH
+ scroll_images(-1*n);
+ #endif // SIXEL_PATCH
+
+ #if OPENURLONCLICK_PATCH
+ if (n > 0)
+ restoremousecursor();
+ #endif // OPENURLONCLICK_PATCH
+}
+
+void
+kscrollup(const Arg* a)
+{
+ int n = a->i;
+ if (n < 0)
+ n = term.row + n;
+
+ if (term.scr + n > term.histn)
+ n = term.histn - term.scr;
+
+ if (!n)
+ return;
+
+ if (term.scr <= HISTSIZE-n) {
+ term.scr += n;
+ selscroll(0, n);
+ tfulldirt();
+ }
+
+ #if SIXEL_PATCH
+ scroll_images(n);
+ #endif // SIXEL_PATCH
+
+ #if OPENURLONCLICK_PATCH
+ if (n > 0)
+ restoremousecursor();
+ #endif // OPENURLONCLICK_PATCH
+}