- From: Philippe Le Hegaret <plh@w3.org>
- Date: 02 Oct 2002 11:30:46 +0300
- To: WWW DOM <www-dom@w3.org>, Martin Dürst <duerst@w3.org>
Here is a set of proposals, following a discussion with Martin, regarding TextEvent. An other message will follow to fix the set of virtual key codes. * clarifications: - text events happen after the FEPs(Front-End Process)/IMEs(Input-Event Methods) (including keydown/keyup) either the conversion result is sent to the application as a text event or single key that IMEs doesn't touch are sent to. - we need to add some general wording regarding differences between character generation system * if the system only has one control key, there is no left and right. - both modifiers (left and right) are on. * the order of META, CONTROL, SHIFT in the constant set should be harmonized. - we should probably say something about META since it is also used on Macintosh for the COMMAND key. * if one key produced more than one unicode character (a composed character for example) - keyVal was meant to contain the unicode representation if any, but it can contain only unicode character (long). It should be 0 (no unicode character) - virtualKeyCode is 0 (the key does have a representation in Unicode). - so outputString will contain the 2 unicode characters. i.e. outputString should be used on keydown/keyup as well. (imho, we should keep keyVal to allow switch statements) we have the following changes: - textInput: keyVal could be 0 even if there a unicode representation. no changes on outputString since it was already used. - keydown/keyup: keyVal could be 0 even if there a unicode representation. outputString is now used to hold the unicode characters if any. * if an unknown virtual key (i.e. no unicode representation) is produced (such as a Windows key, ...) virtualKeyCode is DOM_VK_UNDEFINED keyVal is 0 (it's a virtual key) outputString is null (it's a virtual key) - imho, we need to add back the keyCode field with a warning saying that this field is device dependent. so, when receiving a keydown/keyup: if [keyVal <> 0] { process the unicode character referenced by keyVal and check modifiers. } elif [outputString <> null] { process the string and check modifiers. } elif [virtualKeyCode <> DOM_VK_UNDEFINED] { process the known virtualKeyCode. } elif [keyCode <> 0] { // or <> -1, need to check with existing implementation. process the keyCode } * some virtual key codes are missing, such as DOM_VK_HELP. The HELP key does not have a representation in Unicode and used to be part of KeyEvents. [cf separate message] ISSUE: we decided recently to remove the constraint on having keydown/keyup generated by pairs. Pbs: - removing the constrain move us back in the device/platform dependent area, i.e. you cannot count on keydown/keyup anymore since OS are really incoherent on them. keydown will have to be avoided since it is not generated at on Macintosh. - Some OS generate a lot of keydowns when you keep pressing a key, should we allow this or ask the implementation to remove/convert the extra keydowns? (try to press SHIFT on Windows for example) Philippe
Received on Wednesday, 2 October 2002 04:30:50 UTC