summaryrefslogtreecommitdiffstats
path: root/sys/teken
diff options
context:
space:
mode:
authored <ed@FreeBSD.org>2009-11-11 08:11:21 +0000
committered <ed@FreeBSD.org>2009-11-11 08:11:21 +0000
commit74d077dc934272cd3839f573aeeb27a6c77c4273 (patch)
tree301185878b8ad64f9f76a1fa9ab544fccd91c4f6 /sys/teken
parent0e6c6369b1cf8e092567f5ac26a1ae7bc95f7b95 (diff)
downloadFreeBSD-src-74d077dc934272cd3839f573aeeb27a6c77c4273.zip
FreeBSD-src-74d077dc934272cd3839f573aeeb27a6c77c4273.tar.gz
Always home the cursor when changing the scrolling region.
I thought this only had to be done when in origin mode, to ensure that the cursor is not placed outside the origin, but it seems this is also done when not in origin mode. This fixes some artifacts when pressing ^L while running irssi in tmux. (Almost) nobody noticed this, because cons25 doesn't have scrolling regions.
Diffstat (limited to 'sys/teken')
-rw-r--r--sys/teken/teken_subr.h15
1 files changed, 8 insertions, 7 deletions
diff --git a/sys/teken/teken_subr.h b/sys/teken/teken_subr.h
index ad10abb..4caa500 100644
--- a/sys/teken/teken_subr.h
+++ b/sys/teken/teken_subr.h
@@ -1237,16 +1237,17 @@ teken_subr_set_top_and_bottom_margins(teken_t *t, unsigned int top,
bottom = t->t_winsize.tp_row;
}
+ /* Apply scrolling region. */
t->t_scrollreg.ts_begin = top;
t->t_scrollreg.ts_end = bottom;
- if (t->t_stateflags & TS_ORIGIN) {
- /* XXX: home cursor? */
+ if (t->t_stateflags & TS_ORIGIN)
t->t_originreg = t->t_scrollreg;
- t->t_cursor.tp_row = t->t_originreg.ts_begin;
- t->t_cursor.tp_col = 0;
- t->t_stateflags &= ~TS_WRAPPED;
- teken_funcs_cursor(t);
- }
+
+ /* Home cursor to the top left of the scrolling region. */
+ t->t_cursor.tp_row = t->t_originreg.ts_begin;
+ t->t_cursor.tp_col = 0;
+ t->t_stateflags &= ~TS_WRAPPED;
+ teken_funcs_cursor(t);
}
static void
OpenPOWER on IntegriCloud