gecko-dev/editor/libeditor
Masayuki Nakano b98777fe41 Bug 1462257 - TextComposition should dispatch eCompositionChange event when eCompositionCommit is being fired immediately after eCompositionStart r=m_kato
TextEditor modifies composition string or selected string when first
eCompositionChange event is received.  However, TextComposition dispatches
eCompositionChange event ("text" event of DOM) only when composition string
becomes non-empty if current composition string is empty.  So, when IME
dispatches only eCompositionStart and eCompositionCommit events for removing
selected text, TextEditor does nothing.  This hacky behavior is used by
MS Pinyin on Windows 10 at least.

For supporting this behavior, we need to make TextComposition dispatch
eCompositionChange event when eCompositionChange(AsIs) event is fired
even before dispatching eCompositionChange event.

Although from point of view of web apps, the hacky composition should be
merged into the previous composition if it's possible but it's out of scope
of this bug.

MozReview-Commit-ID: 7QfeBJamGTU

--HG--
extra : rebase_source : 8de1353021f2961ae9f8bdf17ddded1058175339
2018-07-11 23:05:39 +09:00
..
crashtests Bug 1467794 - Split TextEditor::DeleteSelectionAsAction() to itself and TextEditor::DeleteSelectionAsSubAction() r=m_kato 2018-06-29 20:16:50 +09:00
tests Bug 1462257 - TextComposition should dispatch eCompositionChange event when eCompositionCommit is being fired immediately after eCompositionStart r=m_kato 2018-07-11 23:05:39 +09:00
ChangeAttributeTransaction.cpp Bug 1379891 - remove nsPIEditorTransaction interface, GetTxnDescription methods. r=m_kato,masayuki 2018-01-14 16:01:41 +01:00
ChangeAttributeTransaction.h Bug 1425412 - part 9: Create factory methods of ChangeAttributeTransaction and remove EditorBase::CreateTxnForSetAttribute() and EditorBase::CreateTxnForRemoveAttribute() r=m_kato 2017-12-18 17:07:52 +09:00
ChangeStyleTransaction.cpp Bug 1408301: Remove getPropertyCSSValue. r=bz 2018-05-12 11:23:47 +02:00
ChangeStyleTransaction.h Bug 1425412 - part 11: Create factory methods for ChangeStyleTransaction and remove CSSEditUtils::CreateCSSPropertyTxn() r=m_kato 2017-12-18 17:46:57 +09:00
CompositionTransaction.cpp Bug 1463287: Add QueryInterface helper macro for concrete class types. r=bz 2018-05-21 16:33:18 -07:00
CompositionTransaction.h Bug 1425412 - part 4: Create CompositionTransaction::Create() and remove EditorBase::CreateTxnForComposition() r=m_kato 2017-12-15 18:26:37 +09:00
CreateElementTransaction.cpp Bug 1463981 part 3. Remove nsIDOMNode usage in editor. r=masayuki 2018-05-24 13:18:34 -04:00
CreateElementTransaction.h Bug 1447213 - Change editor methods which take |const EditorRawDOMPoint&| but called with EditorDOMPoint.AsRaw() to template methods r=m_kato 2018-03-20 14:05:47 +09:00
CSSEditUtils.cpp Bug 1467722: Don't return null for getComputedStyle when there's no pres shell. r=heycam 2018-06-19 11:47:16 +02:00
CSSEditUtils.h Bug 1408301: Remove getPropertyCSSValue. r=bz 2018-05-12 11:23:47 +02:00
DeleteNodeTransaction.cpp Bug 1379891 - remove nsPIEditorTransaction interface, GetTxnDescription methods. r=m_kato,masayuki 2018-01-14 16:01:41 +01:00
DeleteNodeTransaction.h Bug 1425412 - part 6: Create DeleteNodeTransaction::MaybeCreate() and remove EditorBaseTransaction::CreateTxnForDeleteNode() r=m_kato 2017-12-15 21:24:33 +09:00
DeleteRangeTransaction.cpp Bug 1454241: Remove nsINode::eDATA_NODE. r=bz 2018-04-20 03:58:00 +02:00
DeleteRangeTransaction.h Bug 1425412 - part 12: Create factory methods for DeleteRangeTransaction, EditAggregateTransaction and PlaceholderTransaction for consistency with the other transaction classes r=m_kato 2017-12-18 18:08:43 +09:00
DeleteTextTransaction.cpp Bug 1446533 part 7. Remove nsIDOMCharacterData::InsertData. r=mystor 2018-03-19 15:38:04 -04:00
DeleteTextTransaction.h Bug 1446533 part 2. Rename nsGenericDOMDataNode.{h,cpp} to CharacterData. r=mystor 2018-03-19 15:18:07 -04:00
EditAction.h Bug 1463985 - part 27: Replace EditSubAction::ignore with EditSubAction::eReplaceHeadWithHTMLSource and EditSubAction::eCreateBogusNode r=m_kato 2018-05-29 00:06:24 +09:00
EditActionListener.h
EditAggregateTransaction.cpp Bug 1379891 - remove nsPIEditorTransaction interface, GetTxnDescription methods. r=m_kato,masayuki 2018-01-14 16:01:41 +01:00
EditAggregateTransaction.h Bug 1425412 - part 12: Create factory methods for DeleteRangeTransaction, EditAggregateTransaction and PlaceholderTransaction for consistency with the other transaction classes r=m_kato 2017-12-18 18:08:43 +09:00
EditorBase.cpp Bug 1443902 - Part 2. Update spellcheck status on focused element after turning off contenteditable. r=masayuki 2018-07-10 14:17:50 +09:00
EditorBase.h Bug 1443902 - Reinitilize selection after destroying nsIEditingSession. r=masayuki 2018-07-09 16:53:47 +09:00
EditorCommands.cpp Bug 1450882 - part 4: Make C++ users of nsICommandParams use nsCommandParams directly r=Ehsan 2018-07-10 20:04:21 +09:00
EditorCommands.h
EditorController.cpp
EditorController.h
EditorDOMPoint.h Bug 1465478: Introduce Element::FromNode. r=smaug 2018-05-31 02:46:10 +02:00
EditorEventListener.cpp Bug 1467670 - Devirtualize InsertFromDrop. r=masayuki 2018-06-08 05:19:51 +00:00
EditorEventListener.h Bug 1455052 part 6. Stop using nsIDOMEvent in editor code. r=masayuki 2018-04-20 12:53:17 -04:00
EditorUtils.cpp Bug 1451972 - Remove more nsIDOMDocument usages from editor. r=masayuki 2018-04-06 14:53:05 +09:00
EditorUtils.h Merge mozilla-inbound to mozilla-central. a=merge 2018-05-31 13:04:21 +03:00
EditorUtils.js Bug 1456035: Part 4 - Convert callers of XPCOMUtils.generateQI to ChromeUtils.generateQI. r=mccr8 2018-04-22 20:55:06 -07:00
EditorUtils.manifest
EditTransactionBase.cpp Bug 1379891 - remove nsPIEditorTransaction interface, GetTxnDescription methods. r=m_kato,masayuki 2018-01-14 16:01:41 +01:00
EditTransactionBase.h Bug 1379891 - remove nsPIEditorTransaction interface, GetTxnDescription methods. r=m_kato,masayuki 2018-01-14 16:01:41 +01:00
HTMLAbsPositionEditor.cpp Bug 1465585: Switch from mozilla::Move to std::move. r=froydnj 2018-06-01 10:45:27 +02:00
HTMLAnonymousNodeEditor.cpp Bug 1465060 - Part 1: Fix warnings for std::move() use r=froydnj 2018-06-01 17:59:07 +02:00
HTMLEditor.cpp Bug 1467794 - Split TextEditor::DeleteSelectionAsAction() to itself and TextEditor::DeleteSelectionAsSubAction() r=m_kato 2018-06-29 20:16:50 +09:00
HTMLEditor.h Bug 1471115 - Remove unused methods in nsIHTMLEditor. r=masayuki 2018-06-26 04:29:36 +00:00
HTMLEditorCommands.cpp Bug 1450882 - part 4: Make C++ users of nsICommandParams use nsCommandParams directly r=Ehsan 2018-07-10 20:04:21 +09:00
HTMLEditorCommands.h Bug 1468708 - Part 6. Move HTMLEditorCommands and HTMLEditorController to libeditor. r=masayuki 2018-06-13 14:49:06 -07:00
HTMLEditorController.cpp Bug 1468708 - Part 6. Move HTMLEditorCommands and HTMLEditorController to libeditor. r=masayuki 2018-06-13 14:49:06 -07:00
HTMLEditorController.h Bug 1468708 - Part 6. Move HTMLEditorCommands and HTMLEditorController to libeditor. r=masayuki 2018-06-13 14:49:06 -07:00
HTMLEditorDataTransfer.cpp Bug 1467794 - Split TextEditor::DeleteSelectionAsAction() to itself and TextEditor::DeleteSelectionAsSubAction() r=m_kato 2018-06-29 20:16:50 +09:00
HTMLEditorDocumentCommands.cpp Bug 1450882 - part 2: Make nsICommandParams::GetCStringValue() and nsICommandParams::SetCStringValue() treat nsACString instead of char r=Ehsan 2018-07-10 18:04:46 +09:00
HTMLEditorEventListener.cpp Bug 1387143 part 22. Remove nsISelection isCollapsed/collapsed bits. r=mats 2018-05-08 13:52:39 -04:00
HTMLEditorEventListener.h Bug 1446711 part 8. Get rid of nsIDOMMouseEvent. r=qdot 2018-03-20 00:16:07 -04:00
HTMLEditorObjectResizer.cpp Bug 1405897 - Move assertion before setting resizer attribute. r=masayuki 2018-06-29 04:47:21 +00:00
HTMLEditorObjectResizerUtils.h Bug 1433345 - part 4: Make EditorBase derived from nsISelectionListener and notify its owning classes of selection change r=m_kato 2018-01-26 17:25:45 +09:00
HTMLEditRules.cpp Bug 1467794 - Split TextEditor::DeleteSelectionAsAction() to itself and TextEditor::DeleteSelectionAsSubAction() r=m_kato 2018-06-29 20:16:50 +09:00
HTMLEditRules.h Bug 1471115 - Remove unused methods in nsIHTMLEditor. r=masayuki 2018-06-26 04:29:36 +00:00
HTMLEditUtils.cpp Bug 1463981 part 3. Remove nsIDOMNode usage in editor. r=masayuki 2018-05-24 13:18:34 -04:00
HTMLEditUtils.h Bug 1463981 part 3. Remove nsIDOMNode usage in editor. r=masayuki 2018-05-24 13:18:34 -04:00
HTMLInlineTableEditor.cpp Bug 1465585: Switch from mozilla::Move to std::move. r=froydnj 2018-06-01 10:45:27 +02:00
HTMLStyleEditor.cpp Bug 1463985 - part 24: Rename EditSubAction::resetTextProperties to EditSubAction::eRemoveAllTextProperties r=m_kato 2018-05-28 23:40:45 +09:00
HTMLTableEditor.cpp Bug 1467794 - Split TextEditor::DeleteSelectionAsAction() to itself and TextEditor::DeleteSelectionAsSubAction() r=m_kato 2018-06-29 20:16:50 +09:00
HTMLURIRefObject.cpp Bug 1463981 part 2. Remove use of nsIDOMNode in editor xpidl. r=masayuki 2018-05-24 13:18:34 -04:00
HTMLURIRefObject.h Bug 1463981 part 2. Remove use of nsIDOMNode in editor xpidl. r=masayuki 2018-05-24 13:18:34 -04:00
InsertNodeTransaction.cpp Bug 1463981 part 3. Remove nsIDOMNode usage in editor. r=masayuki 2018-05-24 13:18:34 -04:00
InsertNodeTransaction.h Bug 1447213 - Change editor methods which take |const EditorRawDOMPoint&| but called with EditorDOMPoint.AsRaw() to template methods r=m_kato 2018-03-20 14:05:47 +09:00
InsertTextTransaction.cpp Bug 1463287: Add QueryInterface helper macro for concrete class types. r=bz 2018-05-21 16:33:18 -07:00
InsertTextTransaction.h Bug 1425412 - part 1: Create InsertTextTransaction::Create() and remove EditorBase::CreateTxnForInsertText() r=m_kato 2017-12-15 17:26:52 +09:00
InternetCiter.cpp Bug 1424898 - patch 2 - De-virtualize nsIWordBreaker and rename to mozilla::intl::WordBreaker. r=m_kato 2017-12-13 22:17:38 -06:00
InternetCiter.h
JoinNodeTransaction.cpp Bug 1451672 - part 6: Rename EditorBase::JoinNodesImpl() to EditorBase::DoJoinNodes() r=m_kato 2018-04-10 03:56:46 +09:00
JoinNodeTransaction.h Bug 1425412 - part 8: Create JoinNodeTransaction::MaybeCreate() and remove EditorBase::CreateTxnForJoinNode() r=m_kato 2017-12-15 21:53:08 +09:00
ManualNAC.h
moz.build Bug 1470361: Remove nsIEditorStyleSheets.addStyleSheet / removeStyleSheet / replaceStyleSheet. r=m_kato 2018-06-25 10:46:38 +02:00
nsIAbsorbingTransaction.h
PlaceholderTransaction.cpp Bug 1469769 - Part 6: Replace non-failing NS_NOTREACHED with MOZ_ASSERT_UNREACHABLE. r=froydnj 2018-06-17 22:43:11 -07:00
PlaceholderTransaction.h Bug 1465585: Switch from mozilla::Move to std::move. r=froydnj 2018-06-01 10:45:27 +02:00
SelectionState.cpp Bug 1470325 - s/FooBinding/Foo_Binding/g - r=qdot 2018-06-26 17:05:01 -07:00
SelectionState.h Bug 1451672 - part 16: Rename EditorBase::MoveNode() to EditorBase::MoveNodeWithTransaction() and create EditorBase::MoveNodeToEndWithTransaction() r=m_kato 2018-04-12 23:58:52 +09:00
SplitNodeTransaction.cpp Bug 1463981 part 3. Remove nsIDOMNode usage in editor. r=masayuki 2018-05-24 13:18:34 -04:00
SplitNodeTransaction.h Bug 1447213 - Change editor methods which take |const EditorRawDOMPoint&| but called with EditorDOMPoint.AsRaw() to template methods r=m_kato 2018-03-20 14:05:47 +09:00
TextEditor.cpp Bug 1467794 - Split TextEditor::DeleteSelectionAsAction() to itself and TextEditor::DeleteSelectionAsSubAction() r=m_kato 2018-06-29 20:16:50 +09:00
TextEditor.h Bug 1467794 - Split TextEditor::DeleteSelectionAsAction() to itself and TextEditor::DeleteSelectionAsSubAction() r=m_kato 2018-06-29 20:16:50 +09:00
TextEditorDataTransfer.cpp Bug 1467794 - Split TextEditor::DeleteSelectionAsAction() to itself and TextEditor::DeleteSelectionAsSubAction() r=m_kato 2018-06-29 20:16:50 +09:00
TextEditorTest.cpp Bug 1387143 part 3. Stop using nsISelection in nsISelectionController. r=mats 2018-05-08 13:52:36 -04:00
TextEditorTest.h
TextEditRules.cpp Bug 1467794 - Split TextEditor::DeleteSelectionAsAction() to itself and TextEditor::DeleteSelectionAsSubAction() r=m_kato 2018-06-29 20:16:50 +09:00
TextEditRules.h Bug 1463985 - part 19: Rename EditSubAction::removeList to EditSubAction::eRemoveList r=m_kato 2018-05-28 23:05:00 +09:00
TextEditRulesBidi.cpp Bug 1457083 - part 6: Get rid of unnecessary Selection argument from all protected/private methods of TextEditRules and HTMLEditRules r=m_kato 2018-05-10 15:03:21 +09:00
TextEditUtils.cpp Bug 1449147 - Clean up more nsIDOMNode usages in editor. r=masayuki 2018-03-27 20:19:35 +09:00
TextEditUtils.h Bug 1449147 - Clean up more nsIDOMNode usages in editor. r=masayuki 2018-03-27 20:19:35 +09:00
TypeInState.cpp Bug 1387143 part 22. Remove nsISelection isCollapsed/collapsed bits. r=mats 2018-05-08 13:52:39 -04:00
TypeInState.h Bug 1445569 - part 4: Get rid of EditorBase::GetStartNodeAndOffset() and EditorBase::GetEndNodeAndOffset() r=m_kato 2018-03-15 21:25:41 +09:00
WSRunObject.cpp Bug 1469769 - Part 6: Replace non-failing NS_NOTREACHED with MOZ_ASSERT_UNREACHABLE. r=froydnj 2018-06-17 22:43:11 -07:00
WSRunObject.h Bug 1451672 - part 13: Rename EditorBase::InsertTextImpl() and EditorBase::InsertTextIntoTextNodeImpl() to EditorBase::InsertTextWithTransaction() and EditorBase::InsertTextIntoTextNodeWithTransaction() r=m_kato 2018-04-12 17:58:14 +09:00