grischka skrev:
Jan Djärv wrote:
XSync sends a request to the server and waits for a reply. The resize
request is sent before that, so the resize should be handeled before
the XSync reply is sent.
Yes, but this reply is something in the sense of the X protocol, not
in the sense of ConfigureNotify. It just means that the X server got
the resize message when XSync returns. It doesn't mean at all that
a ConfigureNotify is already in the client queue let alone that emacs
now knows how big it is.
The XProtocol specification (the oldest I have is R6.8, the newest is
7.4, they say the same thing) says this:
"Whether or not a server is implemented with internal concurrency,
the overall effect must be as if individual requests are executed to
completion in some serial order,
and requests from a given connection must be executed in delivery order
(that is, the total execution order is a shuffle of the individual
streams).
The execution of a request includes validating all arguments,
collecting all data for any reply,
and generating and queueing all required events.
However, it does not include the actual transmission of the reply and
the events.
In addition, the effect of any other cause that can generate multiple
events
(for example, activation of a grab or pointer motion) must effectively
generate and queue all required events indivisibly with respect to all
other causes and requests.
For a request from a given client,
any events destined for that client that are caused by executing the
request
must be sent to the client before any reply or error is sent."