summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Hutterer <peter.hutterer@who-t.net>2009-07-31 08:52:43 +1000
committerPeter Hutterer <peter.hutterer@who-t.net>2009-07-31 08:53:40 +1000
commitb31776bb5b416ffa15235611954e68d386edf674 (patch)
tree0c7ba4cfee2535cd8db08df0f5c42be857c27cb6
parent221aed39ac45ce4bf3b28c7956bc00ea3c9dbf57 (diff)
XI2proto.txt: document ClientPointer in more detail.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
-rw-r--r--XI2proto.txt23
1 files changed, 22 insertions, 1 deletions
diff --git a/XI2proto.txt b/XI2proto.txt
index 94e0f81..00e5e8d 100644
--- a/XI2proto.txt
+++ b/XI2proto.txt
@@ -149,6 +149,26 @@ 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. 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. Data types
@@ -672,7 +692,8 @@ are required to be 0.
Some protocol requests are ambiguous and the server has to choose a device
to provide data for a request or a reply. By default, the server will
choose a client's ClientPointer device to provide the data, unless the
- client currently has a grab on another device.
+ client currently has a grab on another device. See section 4.4 for more
+ details.
If win is None, the ClientPointer for this client is set to the given
device. Otherwise, if win is a valid window, the ClientPointer for the