Collection.xml has incorrect argument declaration for MatchRule
The argument declaration of rule
in org.a11y.atspi.Collection.GetMatches
is defined as (auuasuauusub)
in Collection.xml
, which should come out to a struct that looks like this (in go notation, since that's what I know best):
type AtspiMatchRule struct {
States []uint32
StateMatchType uint32
Attributes []string
AttributesMatchType uint32
Roles []uint32
RoleMatchType uint32
Interfaces string
InterfaceMatchType uint32
Invert bool
}
However, passing this struct to the method will fail with the following error message:
Method "GetMatches" with signature "(auuasuauusub)uib" on interface "org.a11y.atspi.Collection" was supplied with invalid arguments
According to _atspi_match_rule_marshal
it seems like the correct type should be (aiia{ss}iaiiasib)
which would be a struct that looks like this:
type AtspiMatchRule struct {
States []int32
StateMatchType int32
Attributes map[string]string
AttributesMatchType int32
Roles []int32
RoleMatchType int32
Interfaces []string
InterfaceMatchType int32
Invert bool
}
Passing this struct will work as intended.
Sidenote: I am very new to both, at-spi2 and dbus, so my understanding on how these things work could be flawed