feat(input): add absolute pointer and scroll

This commit is contained in:
sechmachine
2026-08-11 01:09:42 +07:00
parent bfffea5d2d
commit f981823909
10 changed files with 285 additions and 34 deletions
+11
View File
@@ -68,6 +68,7 @@ type ServerConfig struct {
TLSConfig *tls.Config
QUICConfig *quic.Config
GatewayID string
Features []string
Capabilities protocol.CapabilityProfile
ProviderCapabilities protocol.CapabilityProfile
Admission Admission
@@ -866,6 +867,16 @@ func (s *gatewaySession) handleInput(payload []byte, sequence uint32) error {
if err != nil {
return err
}
requiredFeature := ""
switch event.Device {
case "mouse-absolute":
requiredFeature = "input.absolute.v1"
case "mouse-scroll":
requiredFeature = "input.scroll.v1"
}
if requiredFeature != "" && !slices.Contains(s.server.config.Features, requiredFeature) {
return ErrInputMalformed
}
event.Sequence = sequence
if err := s.provider.Input(s.ctx, event); err != nil {
s.server.metrics.InputRejected.Add(1)