Forward all motion events to mouse processors
The decision to not send motion events when no click is pressed is specific to Android mouse injection. Other mouse processors (e.g. for HID mouse) will need to receive all events.
This commit is contained in:
parent
643293752d
commit
40fca82b60
2 changed files with 5 additions and 8 deletions
|
@ -632,14 +632,6 @@ static void
|
||||||
input_manager_process_mouse_motion(struct input_manager *im,
|
input_manager_process_mouse_motion(struct input_manager *im,
|
||||||
const SDL_MouseMotionEvent *event) {
|
const SDL_MouseMotionEvent *event) {
|
||||||
|
|
||||||
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) {
|
if (event->which == SDL_TOUCH_MOUSEID) {
|
||||||
// simulated from touch events, so it's a duplicate
|
// simulated from touch events, so it's a duplicate
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -58,6 +58,11 @@ convert_touch_action(enum sc_touch_action action) {
|
||||||
static void
|
static void
|
||||||
sc_mouse_processor_process_mouse_motion(struct sc_mouse_processor *mp,
|
sc_mouse_processor_process_mouse_motion(struct sc_mouse_processor *mp,
|
||||||
const struct sc_mouse_motion_event *event) {
|
const struct sc_mouse_motion_event *event) {
|
||||||
|
if (!event->buttons_state) {
|
||||||
|
// Do not send motion events when no click is pressed
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
struct sc_mouse_inject *mi = DOWNCAST(mp);
|
struct sc_mouse_inject *mi = DOWNCAST(mp);
|
||||||
|
|
||||||
struct control_msg msg = {
|
struct control_msg msg = {
|
||||||
|
|
Loading…
Reference in a new issue