diff options
author | Ian Moffett <ian@osmora.org> | 2025-07-08 16:28:37 -0400 |
---|---|---|
committer | Ian Moffett <ian@osmora.org> | 2025-07-08 16:28:37 -0400 |
commit | 376ec65578576f6ff955373ea68539b57d23a012 (patch) | |
tree | 50c75320038a289ca17f64948ae7ee767af49a2d /sys/dev/cons | |
parent | b4cf1f4c82dd837804b57ba01b35c283bff266e6 (diff) |
kernel: cons: Use glyph relative pos in cons attr
- Make curs_col/curs_row reference console_attr.cursor_x/cursor_y
- Console cursor x/y attributes reflect x/y multiplied by glyph dimensions
Signed-off-by: Ian Moffett <ian@osmora.org>
Diffstat (limited to 'sys/dev/cons')
-rw-r--r-- | sys/dev/cons/cons.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/sys/dev/cons/cons.c b/sys/dev/cons/cons.c index 5a59e3d..7407ec1 100644 --- a/sys/dev/cons/cons.c +++ b/sys/dev/cons/cons.c @@ -500,17 +500,17 @@ ctl_attr_write(struct ctlfs_dev *cdp, struct sio_txn *sio) sio->len = sizeof(*attrp); } - memcpy(attrp, sio->buf, sio->len); spinlock_acquire(&scr->lock); + HIDE_CURSOR(scr); + memcpy(attrp, sio->buf, sio->len); /* Clip the x/y positions */ if (attrp->cursor_x >= scr->ncols) - attrp->cursor_x = scr->ncols - 1; + attrp->cursor_x = scr->ncols - FONT_WIDTH; if (attrp->cursor_y >= scr->nrows) - attrp->cursor_y = scr->nrows - 1; + attrp->cursor_y = scr->nrows - FONT_HEIGHT; /* Update cursor */ - HIDE_CURSOR(scr); scr->curs_col = attrp->cursor_x; scr->curs_row = attrp->cursor_y; scr->ch_col = attrp->cursor_x; |