diff options
author | Peter Hutterer <peter.hutterer@who-t.net> | 2009-07-31 08:52:43 +1000 |
---|---|---|
committer | Peter Hutterer <peter.hutterer@who-t.net> | 2009-07-31 08:53:40 +1000 |
commit | b31776bb5b416ffa15235611954e68d386edf674 (patch) | |
tree | 0c7ba4cfee2535cd8db08df0f5c42be857c27cb6 | |
parent | 221aed39ac45ce4bf3b28c7956bc00ea3c9dbf57 (diff) |
XI2proto.txt: document ClientPointer in more detail.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
-rw-r--r-- | XI2proto.txt | 23 |
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 |