--- orig/arduino-1.8.19/hardware/teensy/avr/cores/teensy4/usb_mouse.h 2022-01-03 16:07:38.265807198 -0500 +++ arduino-1.8.19/hardware/teensy/avr/cores/teensy4/usb_mouse.h 2022-01-01 00:37:46.550349988 -0500 @@ -44,6 +44,7 @@ void usb_mouse_configure(void); int usb_mouse_buttons(uint8_t left, uint8_t middle, uint8_t right, uint8_t back, uint8_t forward); int usb_mouse_move(int8_t x, int8_t y, int8_t wheel, int8_t horiz); +int usb_mouse_mask_and_move(uint8_t mask, int8_t x, int8_t y, int8_t wheel, int8_t horiz); int usb_mouse_position(uint16_t x, uint16_t y); void usb_mouse_screen_size(uint16_t width, uint16_t height, uint8_t mac); extern uint8_t usb_mouse_buttons_state; @@ -98,6 +99,9 @@ usb_mouse_move(0, 0, 0, 0); } } + void mask_and_move(uint8_t b, int8_t x, int8_t y, int8_t wheel, int8_t horiz) { + usb_mouse_mask_and_move(b,x,y,wheel,horiz); + } bool isPressed(uint8_t b = MOUSE_ALL) { return ((usb_mouse_buttons_state & (b & MOUSE_ALL)) != 0); } --- orig/arduino-1.8.19/hardware/teensy/avr/cores/teensy4/usb_mouse.c 2022-01-03 16:07:38.262807207 -0500 +++ arduino-1.8.19/hardware/teensy/avr/cores/teensy4/usb_mouse.c 2022-01-01 00:34:57.020952842 -0500 @@ -190,6 +190,11 @@ return usb_mouse_transmit(buffer, 6); } +int usb_mouse_mask_and_move(uint8_t mask, int8_t x, int8_t y, int8_t wheel, int8_t horiz) { + usb_mouse_buttons_state = mask; + return usb_mouse_move(x,y,wheel,horiz); +} + int usb_mouse_position(uint16_t x, uint16_t y) { if (x >= usb_mouse_resolution_x) x = usb_mouse_resolution_x - 1;