Skip to content
  • Keith Packard's avatar
    Make button down state a bitmask. Master buttons track union of slave buttons · cfcb3da7
    Keith Packard authored
    
    
    Mixing usage where some parts of the code treated this field as a bitmask
    and other parts as an array of card8 was wrong, and as the wire protocol
    wanted bitmasks, it was less invasive to switch the newer counting code use
    booleans.
    
    Master devices track slave buttons by waiting for all slave buttons to be
    released before delivering the release event to the client.
    
    This also removes the state merging code in DeepCopyDeviceClasses -- that
    code was changing master device state without delivering any events,
    violating protocol invariants. The result will be that existing slave
    button state which does not match the master will not be visible through the
    master device. Fixing this would require that we synthesize events in this
    function, which seems like a bad idea. Note that keyboards have the same
    issue.
    
    Signed-off-by: Daniel Stone's avatarDaniel Stone <daniel@fooishbar.org>
    Signed-off-by: default avatarPeter Hutterer <peter@cs.unisa.edu.au>
    cfcb3da7