Module Name: src Committed By: nat Date: Sun Jan 12 05:56:59 UTC 2025
Modified Files: src/sys/arch/mac68k/dev: aed.c akbd.c Log Message: Stop echoing keys for special key sequences. This includes brightness and emulated mouse buttons. To generate a diff of this commit: cvs rdiff -u -r1.41 -r1.42 src/sys/arch/mac68k/dev/aed.c cvs rdiff -u -r1.27 -r1.28 src/sys/arch/mac68k/dev/akbd.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/arch/mac68k/dev/aed.c diff -u src/sys/arch/mac68k/dev/aed.c:1.41 src/sys/arch/mac68k/dev/aed.c:1.42 --- src/sys/arch/mac68k/dev/aed.c:1.41 Mon Dec 9 10:32:53 2024 +++ src/sys/arch/mac68k/dev/aed.c Sun Jan 12 05:56:59 2025 @@ -1,4 +1,4 @@ -/* $NetBSD: aed.c,v 1.41 2024/12/09 10:32:53 nat Exp $ */ +/* $NetBSD: aed.c,v 1.42 2025/01/12 05:56:59 nat Exp $ */ /* * Copyright (c) 2024 Nathanial Sloss <nathanialsl...@yahoo.com.au> @@ -29,7 +29,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: aed.c,v 1.41 2024/12/09 10:32:53 nat Exp $"); +__KERNEL_RCSID(0, "$NetBSD: aed.c,v 1.42 2025/01/12 05:56:59 nat Exp $"); #include "opt_adb.h" @@ -62,7 +62,7 @@ __KERNEL_RCSID(0, "$NetBSD: aed.c,v 1.41 */ static int aedmatch(device_t, cfdata_t, void *); static void aedattach(device_t, device_t, void *); -static void aed_emulate_mouse(adb_event_t *); +static int aed_emulate_mouse(adb_event_t *); static void aed_kbdrpt(void *); static void aed_dokeyupdown(adb_event_t *); static void aed_handoff(adb_event_t *); @@ -181,9 +181,9 @@ aed_input(adb_event_t *event) switch (event->def_addr) { case ADBADDR_KBD: - if (aed_sc->sc_options & AED_MSEMUL) - aed_emulate_mouse(&new_event); - else + if (aed_sc->sc_options & AED_MSEMUL) { + rv = aed_emulate_mouse(&new_event); + } else aed_dokeyupdown(&new_event); break; case ADBADDR_MS: @@ -208,11 +208,12 @@ aed_input(adb_event_t *event) * 3rd mouse button events while the 1, 2, and 3 keys will generate * the corresponding mouse button event. */ -static void +static int aed_emulate_mouse(adb_event_t *event) { static int emulmodkey_down; adb_event_t new_event; + int result = 0; if (event->u.k.key == ADBK_KEYDOWN(ADBK_OPTION)) { emulmodkey_down = 1; @@ -231,6 +232,7 @@ aed_emulate_mouse(adb_event_t *event) switch(event->u.k.key) { #ifdef ALTXBUTTONS case ADBK_KEYDOWN(ADBK_1): + result = 1; aed_sc->sc_buttons |= 1; /* left down */ new_event.def_addr = ADBADDR_MS; new_event.u.m.buttons = aed_sc->sc_buttons; @@ -239,6 +241,7 @@ aed_emulate_mouse(adb_event_t *event) aed_handoff(&new_event); break; case ADBK_KEYUP(ADBK_1): + result = 1; aed_sc->sc_buttons &= ~1; /* left up */ new_event.def_addr = ADBADDR_MS; new_event.u.m.buttons = aed_sc->sc_buttons; @@ -251,6 +254,7 @@ aed_emulate_mouse(adb_event_t *event) #ifdef ALTXBUTTONS case ADBK_KEYDOWN(ADBK_2): #endif + result = 1; aed_sc->sc_buttons |= 2; /* middle down */ new_event.def_addr = ADBADDR_MS; new_event.u.m.buttons = aed_sc->sc_buttons; @@ -262,6 +266,7 @@ aed_emulate_mouse(adb_event_t *event) #ifdef ALTXBUTTONS case ADBK_KEYUP(ADBK_2): #endif + result = 1; aed_sc->sc_buttons &= ~2; /* middle up */ new_event.def_addr = ADBADDR_MS; new_event.u.m.buttons = aed_sc->sc_buttons; @@ -273,6 +278,7 @@ aed_emulate_mouse(adb_event_t *event) #ifdef ALTXBUTTONS case ADBK_KEYDOWN(ADBK_3): #endif + result = 1; aed_sc->sc_buttons |= 4; /* right down */ new_event.def_addr = ADBADDR_MS; new_event.u.m.buttons = aed_sc->sc_buttons; @@ -284,6 +290,7 @@ aed_emulate_mouse(adb_event_t *event) #ifdef ALTXBUTTONS case ADBK_KEYUP(ADBK_3): #endif + result = 1; aed_sc->sc_buttons &= ~4; /* right up */ new_event.def_addr = ADBADDR_MS; new_event.u.m.buttons = aed_sc->sc_buttons; @@ -291,10 +298,18 @@ aed_emulate_mouse(adb_event_t *event) microtime(&new_event.timestamp); aed_handoff(&new_event); break; + case ADBK_KEYDOWN(ADBK_UP): + result = 1; + break; case ADBK_KEYUP(ADBK_UP): + result = 1; pmf_event_inject(NULL, PMFE_DISPLAY_BRIGHTNESS_UP); break; + case ADBK_KEYDOWN(ADBK_DOWN): + result = 1; + break; case ADBK_KEYUP(ADBK_DOWN): + result = 1; pmf_event_inject(NULL, PMFE_DISPLAY_BRIGHTNESS_DOWN); break; case ADBK_KEYUP(ADBK_SHIFT): @@ -343,6 +358,8 @@ aed_emulate_mouse(adb_event_t *event) } else { aed_dokeyupdown(event); } + + return result; } /* Index: src/sys/arch/mac68k/dev/akbd.c diff -u src/sys/arch/mac68k/dev/akbd.c:1.27 src/sys/arch/mac68k/dev/akbd.c:1.28 --- src/sys/arch/mac68k/dev/akbd.c:1.27 Sat Sep 18 15:14:40 2021 +++ src/sys/arch/mac68k/dev/akbd.c Sun Jan 12 05:56:59 2025 @@ -1,4 +1,4 @@ -/* $NetBSD: akbd.c,v 1.27 2021/09/18 15:14:40 tsutsui Exp $ */ +/* $NetBSD: akbd.c,v 1.28 2025/01/12 05:56:59 nat Exp $ */ /* * Copyright (C) 1998 Colin Wood @@ -31,7 +31,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: akbd.c,v 1.27 2021/09/18 15:14:40 tsutsui Exp $"); +__KERNEL_RCSID(0, "$NetBSD: akbd.c,v 1.28 2025/01/12 05:56:59 nat Exp $"); #include "opt_adb.h" @@ -322,7 +322,12 @@ kbd_processevent(adb_event_t *event, str new_event.u.k.key = event->bytes[0]; new_event.bytes[1] = 0xff; #if NAED > 0 - if (adb_polling || !aed_input(&new_event)) + int result; + + if ((result = aed_input(&new_event)) != 0) + return; + + if (adb_polling || !result) #endif #if NWSKBD > 0 if (ksc->sc_wskbddev != NULL) /* wskbd is attached? */