summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Hutterer <peter.hutterer@who-t.net>2011-03-18 13:58:29 +1000
committerPeter Hutterer <peter.hutterer@who-t.net>2011-03-18 16:20:12 +1000
commitf24c9ae749c84d953ee3b35be1ea937dce7b86d3 (patch)
tree56e043402b21e68457b1ecd8cb53822ece4d9d43
parent0e4a782339403f270de6e072262680b3a4baec01 (diff)
spec: Move ClientPointer up again.
Prep work to have a separate first-class headline for touch processing Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
-rw-r--r--specs/XI2proto.txt25
1 files changed, 23 insertions, 2 deletions
diff --git a/specs/XI2proto.txt b/specs/XI2proto.txt
index bab822a..9d32699 100644
--- a/specs/XI2proto.txt
+++ b/specs/XI2proto.txt
@@ -216,8 +216,29 @@ to P is only attempted if neither the XI event, nor the core event has been
delivered on W. Once an event has been delivered as either XI or core event,
event processing stops.
-4.4 Touch device support
-~~~~~~~~~~~~~~~~~~~~~~~~
+4.4. The ClientPointer principle
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Many core protocol and some extension requests are ambiguous when multiple
+master devices are available (e.g. QueryPointer does not specfy which pointer).
+The X server does not have the knowledge to chose the contextually correct
+master device. For each client, one master pointer is designated as this
+clients's "ClientPointer". Whenever a client sends an ambiguous request (e.g.
+QueryPointer), the ClientPointer or the keyboard paired with the ClientPointer
+is chosen to provide the data for this request.
+
+This ClientPointer may be explicitly assigned to a client with the
+SetClientPointer call. If no ClientPointer is set when a client issues an
+ambiguous request, the server choses one device as the ClientPointer. The
+method of chosing a ClientPointer from the available master pointers is
+implementation-specific.
+
+If the master pointer currently set as ClientPointer for one or more clients is
+removed, the server may either unset the ClientPointer setting or change the
+ClientPointer to a different master pointer.
+
+5 Touch device support
+----------------------
Touch event processing differs from normal event processing in a few ways,
most notably in that touch events are processed partially out-of-band from