diff options
-rw-r--r-- | src/emuMB.c | 2 | ||||
-rw-r--r-- | src/evdev.c | 10 | ||||
-rw-r--r-- | src/evdev.h | 1 |
3 files changed, 12 insertions, 1 deletions
diff --git a/src/emuMB.c b/src/emuMB.c index ac763cd..199c0d7 100644 --- a/src/emuMB.c +++ b/src/emuMB.c @@ -198,7 +198,7 @@ EvdevMBEmuTimer(InputInfoPtr pInfo) pEvdev->emulateMB.pending = FALSE; if ((id = stateTab[pEvdev->emulateMB.state][4][0]) != 0) { - EvdevQueueButtonEvent(pInfo, abs(id), (id >= 0)); + EvdevPostButtonEvent(pInfo, abs(id), (id >= 0)); pEvdev->emulateMB.state = stateTab[pEvdev->emulateMB.state][4][2]; } else { diff --git a/src/evdev.c b/src/evdev.c index b653311..9c3a990 100644 --- a/src/evdev.c +++ b/src/evdev.c @@ -316,6 +316,16 @@ EvdevQueueButtonEvent(InputInfoPtr pInfo, int button, int value) pEvdev->num_queue++; } +/** + * Post button event right here, right now. + * Interface for MB emulation since these need to post immediately. + */ +void +EvdevPostButtonEvent(InputInfoPtr pInfo, int button, int value) +{ + xf86PostButtonEvent(pInfo->dev, 0, button, value, 0, 0); +} + void EvdevQueueButtonClicks(InputInfoPtr pInfo, int button, int count) { diff --git a/src/evdev.h b/src/evdev.h index a4a1064..38adeaf 100644 --- a/src/evdev.h +++ b/src/evdev.h @@ -183,6 +183,7 @@ typedef struct { /* Event posting functions */ void EvdevQueueKbdEvent(InputInfoPtr pInfo, struct input_event *ev, int value); void EvdevQueueButtonEvent(InputInfoPtr pInfo, int button, int value); +void EvdevPostButtonEvent(InputInfoPtr pInfo, int button, int value); void EvdevQueueButtonClicks(InputInfoPtr pInfo, int button, int count); void EvdevPostRelativeMotionEvents(InputInfoPtr pInfo, int *num_v, int *first_v, int v[MAX_VALUATORS]); |