aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVadim Ushakov <igeekless@gmail.com>2024-01-14 16:22:17 +0000
committerWarner Losh <imp@FreeBSD.org>2024-01-14 16:24:41 +0000
commit751c323b829c36ca63a123a02a51f971ca3bd409 (patch)
tree7f991c9216132e336741e0eab4da6fc705beda4c
parent256fe4a15484d72452ada288f5a3d9c9672b2d57 (diff)
downloadsrc-751c323b829c36ca63a123a02a51f971ca3bd409.tar.gz
src-751c323b829c36ca63a123a02a51f971ca3bd409.zip
sc: Use current console rather than first console for mouse input
When mouse reporting feature is turned on (control sequence ^[[?1000h), syscons sends valid mouse coordinates only for ttyv0. Applications running on other ttys always (erroneously) get mouse coordinates from the first tty, not from tty they actually run. Steps to reproduce: 1. On ttyv0, run any application that uses mouse reporting feature. Make some clicks. The feature works properly. 2. Switch to another ttyv, run the application. The application receives mouse click events, but mouse position reported by syscons to the application does not match with the actual mouse position on the screen. Expected result: Reported mouse position should match with visible mouse position. PR: 193339 Reviewed by: imp
-rw-r--r--sys/dev/syscons/scmouse.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/dev/syscons/scmouse.c b/sys/dev/syscons/scmouse.c
index f23f412cc00d..b0c7fcc9d147 100644
--- a/sys/dev/syscons/scmouse.c
+++ b/sys/dev/syscons/scmouse.c
@@ -798,7 +798,7 @@ sc_mouse_ioctl(struct tty *tp, u_long cmd, caddr_t data, struct thread *td)
cur_scp->status &= ~MOUSE_HIDDEN;
if (cur_scp->mouse_level > 0) {
- sc_mouse_input(scp, mouse);
+ sc_mouse_input(cur_scp, mouse);
break;
}
@@ -859,7 +859,7 @@ sc_mouse_ioctl(struct tty *tp, u_long cmd, caddr_t data, struct thread *td)
cur_scp->status &= ~MOUSE_HIDDEN;
if (cur_scp->mouse_level > 0) {
- sc_mouse_input(scp, mouse);
+ sc_mouse_input(cur_scp, mouse);
break;
}