{"action":"created","issue":{"url":"https://api.github.com/repos/w3c/input-events/issues/34","repository_url":"https://api.github.com/repos/w3c/input-events","labels_url":"https://api.github.com/repos/w3c/input-events/issues/34/labels{/name}","comments_url":"https://api.github.com/repos/w3c/input-events/issues/34/comments","events_url":"https://api.github.com/repos/w3c/input-events/issues/34/events","html_url":"https://github.com/w3c/input-events/issues/34","id":178347329,"number":34,"title":"Introduce inputType 'deleteCompositionText' and 'insertFromComposition', fired right before 'compositionend'","user":{"login":"choniong","id":2839070,"avatar_url":"https://avatars.githubusercontent.com/u/2839070?v=3","gravatar_id":"","url":"https://api.github.com/users/choniong","html_url":"https://github.com/choniong","followers_url":"https://api.github.com/users/choniong/followers","following_url":"https://api.github.com/users/choniong/following{/other_user}","gists_url":"https://api.github.com/users/choniong/gists{/gist_id}","starred_url":"https://api.github.com/users/choniong/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/choniong/subscriptions","organizations_url":"https://api.github.com/users/choniong/orgs","repos_url":"https://api.github.com/users/choniong/repos","events_url":"https://api.github.com/users/choniong/events{/privacy}","received_events_url":"https://api.github.com/users/choniong/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":2,"created_at":"2016-09-21T13:30:34Z","updated_at":"2016-09-28T19:03:27Z","closed_at":"2016-09-28T18:59:49Z","body":"**Original Discussion**\r\nhttps://github.com/w3c/editing/issues/118#issuecomment-209646801 We want `'deleteComposedCharacter'` during composition because of it's special non-cancelable attribute.\r\n\r\n**Issues**\r\n  1. `'insertText'` during composition is also non-cancelable, do we want `'insertCompositionText'`?\r\n  2. `'deleteComposedCharacter'` is not so helpful as Chrome (and maybe WebKit) always replace the entire composition text\r\n\r\n**Proposal**\r\n  0. Text replacement should only be split into deletion and insertion at *1. the start* and *2. the end* of the composition\r\n    * During composition both deletion and insertion are non-cancelable, so there is no reason to split\r\n  1. Have 4 composition related events\r\n    1. Single or none `'deleteByComposition'`, fired before `'compositionstart'`, cancelable\r\n    2. Multiple `'insertCompositionText'`, fired during composition, non-cancelable\r\n    3. Single `'deleteCompositionText'`, fired before `'compositionend'`, non-cancelable\r\n    4. Single or none `'insertFromComposition'`, fired between iii. and `'compositionend'`, cancelable\r\n\r\n**Example**\r\n```\r\n(1. beforeinput - 'deleteByComposition')\r\n(2. input - 'deleteByComposition')\r\n3. 'compositionstart'\r\n\r\n4. beforeinput - 'insertCompositionText'\r\n5. 'compositionupdate'\r\n6. input - 'insertCompositionText'\r\n7. beforeinput - 'insertCompositionText'\r\n8. 'compositionupdate'\r\n9. input - 'insertCompositionText'\r\n(...)\r\n\r\n10. beforeinput - 'deleteCompositionText'\r\n11. input - 'deleteCompositionText'\r\n\r\n(12. beforeinput - 'insertFromComposition')\r\n(13. input - 'insertFromComposition')\r\n14. 'compositionend'\r\n```"},"comment":{"url":"https://api.github.com/repos/w3c/input-events/issues/comments/250266845","html_url":"https://github.com/w3c/input-events/issues/34#issuecomment-250266845","issue_url":"https://api.github.com/repos/w3c/input-events/issues/34","id":250266845,"user":{"login":"johanneswilm","id":595512,"avatar_url":"https://avatars.githubusercontent.com/u/595512?v=3","gravatar_id":"","url":"https://api.github.com/users/johanneswilm","html_url":"https://github.com/johanneswilm","followers_url":"https://api.github.com/users/johanneswilm/followers","following_url":"https://api.github.com/users/johanneswilm/following{/other_user}","gists_url":"https://api.github.com/users/johanneswilm/gists{/gist_id}","starred_url":"https://api.github.com/users/johanneswilm/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/johanneswilm/subscriptions","organizations_url":"https://api.github.com/users/johanneswilm/orgs","repos_url":"https://api.github.com/users/johanneswilm/repos","events_url":"https://api.github.com/users/johanneswilm/events{/privacy}","received_events_url":"https://api.github.com/users/johanneswilm/received_events","type":"User","site_admin":false},"created_at":"2016-09-28T19:03:27Z","updated_at":"2016-09-28T19:03:27Z","body":"@choniong I tried to add a non-normative note in humanly readable language about how the beforeinput events should relate to IME composition [1]. This is meant largely for JavaScript developers who try to built their apps on top of the spec. Some terms still need to be linked to the p[roper definitions, but let me know if this is more or less correct.\r\n\r\n[1] https://w3c.github.io/input-events/#h-note4"}}
{"actor":{"display_login":"johanneswilm"}}