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 <[email protected]>
@@ -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? */