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? */

Reply via email to