- From: Doug Schepers <schepers@w3.org>
- Date: Wed, 30 Jun 2010 17:37:23 +0100
- To: Daniel Danilatos <daniel@danilatos.com>
- CC: James Su <suzhe@google.com>, "Hironori Bono (坊野 博典)" <hbono@google.com>, www-dom@w3.org, Ojan Vafai <ojan@chromium.org>
Hi, Dan-
If everyone is agreed about this, then I have no problem changing the
spec. I'm on vacation right now so I'm not following the conversation
closely, but I'll fix the spec when I get back next week.
Regards-
-Doug
Daniel Danilatos wrote (on 6/30/10 11:44 AM):
> So it seems we're all happy with this. Doug, any chance of it finding
> its way into the spec? We really would like to fix the outstanding
> issues in Webkit.
>
> Dan
>
> On Thu, Jun 17, 2010 at 11:47 AM, Ojan Vafai<ojan@chromium.org> wrote:
>> I didn't mean to derail the original proposal. As best I can tell, everyone
>> who has voiced an opinion agrees that compositionstart/compositionend should
>> bound all IME related DOM modifications and that textInput should fire
>> before the compositionEnd event.
>> Whether it also fires before compositionStart is totally orthogonal. We
>> should try to address that after we've come to a conclusion on the other
>> thread about extending textInput to other input modes.
>> Ojan
>> On Wed, Jun 16, 2010 at 6:08 PM, James Su<suzhe@google.com> wrote:
>>>
>>> To prevent all text input, I think the preferred way is to just cancel
>>> keydown event. In this case we don't need to care about textInput and
>>> composition events at all. It's also compatible with non-IME input mode. So
>>> I think textInput and composition events should not be fired at all if
>>> keydown is cancelled.
>>> Regards
>>> James Su
>>>
>>> 2010/6/16 Ojan Vafai<ojan@chromium.org>
>>>>
>>>> On Wed, Jun 16, 2010 at 2:38 PM, Ojan Vafai<ojan@chromium.org> wrote:
>>>>>
>>>>> to type "wo" -> 我
>>>>> user "w"<-- Canceling keydown should prevent the composition from
>>>>> starting and the DOM should not be modified.
>>>>
>>>> Upon further thought, I think we should also fire a textInput event here
>>>> (not sure if it should fire before or after compositionstart). "data" can
>>>> just be the empty string. It should be possible to only listen to textInput
>>>> and preventDefault to prevent all text insertion. You shouldn't need to
>>>> listen to both textInput and keydown/compositionstart.
>>>>
>>>>>
>>>>> event compositionstart
>>>>> ("w")
>>>>>
>>>>> user "o"<-- Not related to textInput since this keydown doesn't
>>>>> generate a textInput event. One cross-platform solution would be to cancel
>>>>> the composition.
>>>>> ("wo")
>>>>>
>>>>> user<space> <-- Same as above.
>>>>> ("我")
>>>>>
>>>>> user<space> (to commit the composition)<-- Should cancel the textInput
>>>>> and thus cancel the composition.
>>>>> ("")
>>>>> event textInput (cancelable)
>>>>> ("我")
>>>>> event compositionend
>>>>> -Ojan
>>>>
>>>
>>
>>
>
>
Received on Wednesday, 30 June 2010 16:37:33 UTC