Cthulhu is no longer a fork. Now it is a screen reader written in Golang.

This commit is contained in:
Storm Dragon committed 2026-10-14 00:16:34 -04:00
1 parent a998fe67de
commit 069fc674dc
708 files changed
+112482 -532

No files matched your search

+31
View File
@@ -0,0 +1,31 @@
// Copyright (c) 2026 Storm Dragon
// Authors: Storm Dragon, Angus Kola
// SPDX-License-Identifier: GPL-3.0-or-later
package input
// RepeatTracker is owned by the native input producer. Classic X11 repeats
// release and press with the same timestamp; detectable autorepeat emits
// another press while the key remains down. Neither is a fresh physical press.
type RepeatTracker struct {
held [256]bool
releasedTimestamp [256]uint32
}
func (tracker *RepeatTracker) Observe(event Event) bool {
code := event.Keycode
if !event.Pressed {
tracker.held[code] = false
tracker.releasedTimestamp[code] = event.Timestamp
return false
}
repeated := tracker.held[code] || event.Timestamp != 0 &&
tracker.releasedTimestamp[code] == event.Timestamp
tracker.held[code] = true
tracker.releasedTimestamp[code] = 0
return repeated
}
func (tracker *RepeatTracker) Reset() {
*tracker = RepeatTracker{}
}