aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/emuMB.c2
-rw-r--r--src/evdev.c10
-rw-r--r--src/evdev.h1
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]);