summaryrefslogtreecommitdiffstats
path: root/sys/kern
diff options
context:
space:
mode:
authordumbbell <dumbbell@FreeBSD.org>2014-11-22 16:55:55 +0000
committerdumbbell <dumbbell@FreeBSD.org>2014-11-22 16:55:55 +0000
commit67ea82037affc090649d9f584fbdcce9a58ba367 (patch)
treea13336b331006c25cfb994c448d5dc37b5a3dc65 /sys/kern
parent93517beb67d09e1304b71d2363cfbe7c9857e45a (diff)
downloadFreeBSD-src-67ea82037affc090649d9f584fbdcce9a58ba367.zip
FreeBSD-src-67ea82037affc090649d9f584fbdcce9a58ba367.tar.gz
vt(4): Adjust the cursor position after changing the window size
A new terminal_set_cursor() is added: it wraps the existing teken_set_cursor() function. In vtbuf_grow(), the cursor position is adjusted at the end of the function. In vt_change_font(), we call terminal_set_cursor() just after terminal_set_winsize_blank(), while the terminal is mute. This fixes a bug where, after loading a kernel video driver which increases the terminal window size, the cursor remains at its old position, in other words, in the middle of the display content. PR: 194421 MFC of: r273932
Diffstat (limited to 'sys/kern')
-rw-r--r--sys/kern/subr_terminal.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/sys/kern/subr_terminal.c b/sys/kern/subr_terminal.c
index 69345df..76c6cfb 100644
--- a/sys/kern/subr_terminal.c
+++ b/sys/kern/subr_terminal.c
@@ -190,6 +190,13 @@ terminal_maketty(struct terminal *tm, const char *fmt, ...)
}
void
+terminal_set_cursor(struct terminal *tm, const term_pos_t *pos)
+{
+
+ teken_set_cursor(&tm->tm_emulator, pos);
+}
+
+void
terminal_set_winsize_blank(struct terminal *tm, const struct winsize *size,
int blank, const term_attr_t *attr)
{
OpenPOWER on IntegriCloud