• Jeffrey Lee's avatar
    Add scroll mouse support · 66b2aac7
    Jeffrey Lee authored
    * Listen out for PointerV 9, which (RISC OS 5) mouse drivers use to
    indicate scroll wheel updates + extra button status
    * Changes in the state of the extra buttons are treated the same as
    changes to normal mouse buttons: signalled via Event_Mouse, and stored
    in the mouse buffer (for reading via OS_Mouse).
    * Changes in the scroll wheel(s) are signalled via Event_Expansion,4. If
    the event vector call is unclaimed, the kernel's wheel position
    accumulators will be updated
    * Wheel position accumulators can be read via OS_Pointer 2
    * Wheel position accumulators implement "wrap to zero" logic on overflow
    
    This matches RISCOS Ltd's implementation
    (http://www.riscos.com/support/developers/riscos6/input/pointerdevices.html),
    except that:
    
    * The kernel currently doesn't call PointerV 4, so PointerV 9 is the
    only way drivers can report wheel + extra button status
    * Extra mouse buttons don't generate KeyV transitions
    * Our implementation is in the kernel, not an OSPointer module
    
    Version 6.37. Tagged as 'Kernel-6_37'
    66b2aac7
KeyWS 4.12 KB