return [lindex $map $ix]
}
-proc ib-ev/wheelmouse/EV_REL/REL_WHEEL {w value} {
+proc ib-ev/wheelmouse/EV_REL/REL_WHEEL {devid value} {
upvar #0 input/$devid in
if {$value<0} {
if {[speedw-uninhibit $in(speedw) 2]>0} { incr value 1 }
}
proc ib-evcmd/wheelmouse {devid target} {
- return [ib-evcmd-construct $devid $target --grab]
+ return [ib-evcmd-construct $devid $target {
+ --grab
+ --redaction EV REL REL X --suppress
+ --redaction EV REL REL Y --suppress
+ }]
}
#---------- input device evdev binding ----------
proc ib-evcmd-construct {devid target xargs} {
upvar #0 input/$devid in
manyset $target ev sysfs
+ if {[regexp { } $ev]} { error "event device `$ev' contains space" }
return [concat \
- [list ./evdev-manip] $xargs \
+ [list ./evdev-manip --redact] $xargs \
[list --stdin-monitor \
--expect-sysfs /sys$sysfs/$ev/dev \
/dev/input/$ev]]
# give the input binding first dibs
if {[ib-inputline/$in(concrete) $devid $l]} return
}
- switch -glob -- $l {
- {device *} {
+ regsub {^[^ ]+ } $l {} lr
+ switch -glob -- $lr {
+ {opened *} {
debug "ib $devid start << $l"
if {[info exists in(speedw)]} {
speedw-setstate $in(speedw) normal
}
}
- {event *} {
- manyset [split $l] dummy dummy kind code value
- set proc ib/$in(concrete)/$kind/$code
- if {[catch { info args $proc }]} return
+ {[-0-9]*} {
+ manyset [split $lr] value kindl kindr codel coder
+ set proc ib-ev/$in(concrete)/${kindl}_${kindr}/${codel}_${coder}
+ if {[catch { info args $proc }]} {
+ debug "ib $devid unbound $proc <<"
+ return
+ }
$proc $devid $value
}
- {report-from *} { }
- {synch *} { }
* {
debug "ib $devid ignored << $l"
}