feat(input): add absolute pointer and scroll
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user