Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(214)

Side by Side Diff: third_party/WebKit/Source/core/events/InputEvent.cpp

Issue 1752933002: [InputEvent] Fire 'beforeinput' during typing, pressing hot keys and IME composition (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Yosi's review Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "core/events/InputEvent.h" 5 #include "core/events/InputEvent.h"
6 6
7 #include "core/events/EventDispatcher.h" 7 #include "core/events/EventDispatcher.h"
8 8
9 namespace blink { 9 namespace blink {
10 10
11 namespace {
12
13 String InputTypeToString(InputEvent::InputType inputType)
chongz 2016/03/15 19:19:10 Cannot do |InputType m_inputType| because I need t
yosin_UTC9 2016/03/16 01:46:51 |inputType| doesn't hold a command name rather it
yosin_UTC9 2016/03/16 01:51:10 |inputType| is still in discussion, https://github
chongz 2016/03/16 21:51:44 Ok, I also found a list here and I'm not sure whic
yosin_UTC9 2016/03/17 01:52:23 Make sense. Start with well defined one then expan
ojan 2016/03/17 18:12:59 Using strings for code logic is definitely bad and
ojan 2016/03/17 18:21:10 Oh, I see, you added shouldFireInputEvent. For now
chongz 2016/04/13 00:34:28 Done.
14 {
15 switch (inputType) {
16 case InputEvent::InputType::InsertText:
17 return "insertText";
18 case InputEvent::InputType::ReplaceText:
19 return "replaceText";
20 }
21 ASSERT_NOT_REACHED();
22 return "";
23 }
24
25 } // anonymous namespace
26
11 InputEvent::InputEvent() 27 InputEvent::InputEvent()
12 { 28 {
13 } 29 }
14 30
15 InputEvent::InputEvent(const AtomicString& type, const InputEventInit& initializ er) 31 InputEvent::InputEvent(const AtomicString& type, const InputEventInit& initializ er)
16 : UIEvent(type, initializer) 32 : UIEvent(type, initializer)
17 { 33 {
34 if (initializer.hasInputType())
35 m_inputType = initializer.inputType();
36 if (initializer.hasData())
37 m_data = initializer.data();
38 }
39
40 /* static */
41 PassRefPtrWillBeRawPtr<InputEvent> InputEvent::createBeforeInputTyping(InputType inputType, const String& data)
42 {
43 InputEventInit inputEventInit;
44
45 inputEventInit.setBubbles(true);
46 inputEventInit.setCancelable(true);
47 inputEventInit.setInputType(InputTypeToString(inputType));
48 inputEventInit.setData(data);
49
50 return InputEvent::create(EventTypeNames::beforeinput, inputEventInit);
51 }
52
53 /* static */
54 PassRefPtrWillBeRawPtr<InputEvent> InputEvent::createBeforeInputCompositionUpdat e(InputType inputType, const String& data)
55 {
56 InputEventInit inputEventInit;
57
58 inputEventInit.setBubbles(true);
59 inputEventInit.setCancelable(false);
60 inputEventInit.setInputType(InputTypeToString(inputType));
61 inputEventInit.setData(data);
62
63 return InputEvent::create(EventTypeNames::beforeinput, inputEventInit);
64 }
65
66 /* static */
67 PassRefPtrWillBeRawPtr<InputEvent> InputEvent::createBeforeInputEditorCommand(co nst String& commandName, const String& data)
68 {
69 InputEventInit inputEventInit;
70
71 inputEventInit.setBubbles(true);
72 inputEventInit.setCancelable(true);
73 inputEventInit.setInputType(commandName);
74 inputEventInit.setData(data);
75
76 return InputEvent::create(EventTypeNames::beforeinput, inputEventInit);
18 } 77 }
19 78
20 bool InputEvent::isInputEvent() const 79 bool InputEvent::isInputEvent() const
21 { 80 {
22 return true; 81 return true;
23 } 82 }
24 83
25 DEFINE_TRACE(InputEvent) 84 DEFINE_TRACE(InputEvent)
26 { 85 {
27 UIEvent::trace(visitor); 86 UIEvent::trace(visitor);
28 } 87 }
29 88
30 } // namespace blink 89 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698