Rémi Bernon (@rbernon) commented about server/queue.c:
+ struct message *prev; + struct list *ptr; + + for (ptr = list_tail( &input->msg_list ); ptr; ptr = list_prev( &input->msg_list, ptr )) + { + prev = LIST_ENTRY( ptr, struct message, entry ); + if (prev->msg != WM_INPUT) break; + } + if (!ptr) return 0; + if (prev->result) return 0; + if (prev->win && msg->win && prev->win != msg->win) return 0; + if (prev->msg != msg->msg) return 0; + if (prev->type != msg->type) return 0; + if (prev->x != msg->x || prev->y != msg->y) return 0; + /* now we can merge it */ + prev->wparam = msg->wparam; Merging the messages don't seem right, they contain relative wheel position so this will effectively drop some movements?
-- https://gitlab.winehq.org/wine/wine/-/merge_requests/7300#note_94131