Forward mouse motion only on main clicks
Mouse motion events were forwarded as soon as any mouse button was
pressed.
Instead, only consider left-click (and also middle-click and right-click
if --forward-all-clicks is enabled).
@@ -595,8 +595,12 @@ convert_mouse_motion(const SDL_MouseMotionEvent *from, struct screen *screen,
static void
input_manager_process_mouse_motion(struct input_manager *im,
const SDL_MouseMotionEvent *event) {
- if (!event->state) {
- // do not send motion events when no button is pressed
+ uint32_t mask = SDL_BUTTON_LMASK;
+ if (im->forward_all_clicks) {
+ mask |= SDL_BUTTON_MMASK | SDL_BUTTON_RMASK;
+ }
+ if (!(event->state & mask)) {
+ // do not send motion events when no click is pressed
return;
}
if (event->which == SDL_TOUCH_MOUSEID) {
