summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChase Douglas <chase.douglas@canonical.com>2011-12-14 16:26:04 +1000
committerPeter Hutterer <peter.hutterer@who-t.net>2011-12-21 12:38:35 +1000
commit6a68f97ce6704dd2ff2a50f91acd2da72c9995bd (patch)
tree7fd05ae10d084aef219bd01012823a59c84b7241
parent8e58ce73c8b79cb86e890369d0216cdd850c52a5 (diff)
dix: add TouchGetPointerEventType helper function
Returns the respective pointer event type for a given touch event type. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Chase Douglas <chase.douglas@canonical.com>
-rw-r--r--dix/touch.c21
-rw-r--r--include/input.h1
2 files changed, 22 insertions, 0 deletions
diff --git a/dix/touch.c b/dix/touch.c
index 0f2c0c335..2647ca4be 100644
--- a/dix/touch.c
+++ b/dix/touch.c
@@ -593,3 +593,24 @@ TouchEnsureSprite(DeviceIntPtr sourcedev, TouchPointInfoPtr ti,
return TRUE;
}
+
+/**
+ * Return the corresponding pointer emulation internal event type for the given
+ * touch event or 0 if no such event type exists.
+ */
+int
+TouchGetPointerEventType(const InternalEvent *event)
+{
+ int type = 0;
+
+ switch(event->any.type)
+ {
+ case ET_TouchBegin: type = ET_ButtonPress; break;
+ case ET_TouchUpdate: type = ET_Motion; break;
+ case ET_TouchEnd: type = ET_ButtonRelease; break;
+ default:
+ break;
+ }
+ return type;
+}
+
diff --git a/include/input.h b/include/input.h
index f1615cf44..84d1d4352 100644
--- a/include/input.h
+++ b/include/input.h
@@ -615,6 +615,7 @@ extern void TouchEventHistoryReplay(TouchPointInfoPtr ti, DeviceIntPtr dev, XID
extern Bool TouchEnsureSprite(DeviceIntPtr sourcedev, TouchPointInfoPtr ti,
InternalEvent *ev);
extern Bool TouchBuildDependentSpriteTrace(DeviceIntPtr dev, SpritePtr sprite);
+extern int TouchGetPointerEventType(const InternalEvent *ev);
/* misc event helpers */
extern Mask GetEventMask(DeviceIntPtr dev, xEvent* ev, InputClientsPtr clients);