[Message Prev][Message Next][Thread Prev][Thread Next][Message Index][Thread Index]
re: numlock sync patch
- To: rdesktop@xxxxxxxx
- Subject: re: numlock sync patch
- From: Peter Bystrom <peter.bystrom@xxxxxxxxx>
- Date: Wed, 10 Jan 2001 14:30:15 +0100
- Delivered-To: mailing list rdesktop@cifs.org
- Mailing-List: contact rdesktop-help@cifs.org; run by ezmlm
a correction is at place, it _does_ send the information, I missed this part
earlier...
During an AS session, an ASCE need only send keyboard events when providing
input to a remotely hosted application. It need not send keyboard events for
keys typed before it became active, or when the conference is in conducted
mode and it does not have conductorship privileges, or it is not in control,
or it is detached.
A sending ASCE shall ensure that the portions of the local input stream that
are sent in keyboard events in InputPDUs are internally consistent. For
example, suppose that the local end-user had CapsLock on before the ASCE
became active in the AS session, and then takes control of a remotely hosted
application and starts typing. The ASCE must precede sent keyboard events
with additional keyboard events containing CapsLock down/up events, and rely
on peer ASCEs to prepare their local keyboard state so that the CapsLock
down/up takes effect (which may be a null operation if CapsLock was on
remotely as well) to ensure that the input is capitalized on the remote
system.
The general requirement is that the sending ASCE inserts keyboard events as
required into the outgoing input stream to synchronize the remote keyboard to
the local keyboard state.
During an AS session, an ASCE may receive input from multiple peer ASCEs. For
example, where an ASCE is hosting an application in a multipoint conference,
several peer ASCEs may provide input in turn, as the remote end-users
exchange control and provide input to the hosted application. While an ASCE
can rely on the sending ASCEs inserting any required state (see above), it is
responsible for undoing any local keyboard state established on behalf of
other peer ASCEs before processing input from a new ASCE. For example, if
ASCE A is hosting the application, ASCE B is in control and has CapsLock on
and control switches to ASCE C who already has NumLock on, then when ASCE A
switches input from ASCE B to ASCE C, it can rely on ASCE C prefacing its
input stream with a NumLock-down, NumLock-up, but is itself responsible for
undoing the CapsLock state established on behalf of ASCE B. When ASCE A
subsequently switches input from ASCE C back to ASCE B, it is then
responsible for re-establishing the CapsLock on state on behalf of ASCE B.
The general requirement is that a receiving ASCE is responsible for taking
any local action required to synchronize the local keyboard state to that of
a new input stream.