Commit Graph

8 Commits

Author SHA1 Message Date
Masayuki Nakano
b1e0f93335 Bug 1349138 Edit transactions should store their editor instance with strong reference r=smaug
Edit transactions should store their editor instance with strong reference and they should be released at destroying the editor.

MozReview-Commit-ID: D67KU8WFxyo
2017-03-21 19:00:36 +09:00
Makoto Kato
fe4aab3f1e Bug 1310912 - Part 4. RangeUpdater should be called on DoTransaction. r=masayuki
Although PlaceholderTransaction will use the selection on Merge, it is too late to use UpdateRange.  Because RangeUpdater will be used after DoTransaction is finished.  So we should update selection on DoTransaction.

Also, part 1 fix doesn't update selection correctly via RangeUpdater when IME composition is multiple node.

MozReview-Commit-ID: 9so9tR8uQ6t
2016-11-12 14:56:33 +09:00
Makoto Kato
3b75106dc4 Bug 1310912 - Part 1. CompositionTransaction should support multiple text nodes. r=masayuki
Google Keep uses range.insertNode on input event.  So, text node will be inserted into current caret position.

Microsoft IME's caret is after composition string, but ATOK's caret is before it.  So when using ATOK, this issue occurs.  By range.insertNode, text nodes that have IME attribute becomes multiple text nodes.  But CompositionTransanction doesn't consider that IME range isn't single text node.  Although it replaces current composition string with new string on first text node, it doesn't delete composition string on other text node.

MozReview-Commit-ID: 9uRx0A9mppx
2016-11-08 16:14:57 +09:00
Masayuki Nakano
381c9c05ee Bug 1310618 Replace nsresult variables |res| with |rv| under editor/ r=Ehsan
In our coding rules, variable names of nsresult should be rv.  Indeed, when you see |rv| in the code, you must assume that its type if nsresult.

However, a lot of code under editor/ uses |res| for the variables of nsresult.  Let's replace |res| with |rv|.

And this patch improves following points:

1. When |rv| is set in both |if| and |else| block and they are check outside of them, this moves the check into each |if| and |else| block because even if the failure is notified with warning, you cannot see which case was performed and failed.  This change makes it clear.

2. When |return rv;| returns non-error code because |rv| is checked with NS_ENSURE_SUCCESS() immediately before, setting replacing it with |return NS_OK;| is clearer.

3. Move declaration of |nsresult rv| into smaller scope as far as possible.  This prevents setting rv to unexpected value and easier to check its value at reading the code.

MozReview-Commit-ID: 9MAqj7sFey3
2016-10-19 18:09:33 +09:00
Ou Shinjo
a80d859a5f Bug 1266165 - CompositionTransaction::SetIMESelection() should not hide caret when redo r=masayuki
CompositionTransaction::SetIMESelection() is also called when user redos the committed composition.  In such case, it doesn't have ranges, but DoTransaction() tries to restore selection ranges with no ranges.  That causes hiding caret because when there is no caret range in the ranges, SetIMESelection() hides the caret as IME requested.

So, for redo, SetIMESelection() shouldn't hide caret when there are no ranges (i.e., the composition was already committed).
2016-08-27 13:26:42 +09:00
Masayuki Nakano
5307069dfd Bug 1260651 part.59 Rename nsEditor to mozilla::EditorBase (and also their file names) r=mccr8
This patch also renames:

EditorInputEventDispatcher -> mozilla::EditorInputEventDispatcher

And some variable names are renamed from aEditor or mEditor to aEditorBase or mEditorBase for making their types clearer.

MozReview-Commit-ID: 2FCXWpLMn8e
2016-07-08 13:10:13 +09:00
Masayuki Nakano
d49c33f252 Bug 1260651 part.32 Rename EditTxn to mozilla::EditTransactionBase r=mccr8
This patch also renames NS_DECL_EDITTXN to NS_DECL_EDIT_TRANSACTION_BASE.

MozReview-Commit-ID: 29TQbKBBEhD
2016-07-08 09:48:34 +09:00
Masayuki Nakano
b16fc7838e Bug 1260651 part.23 Rename mozilla::dom::IMETextTxn to mozilla::CompositionTransaction (and their files too) r=mccr8
This patch renames IMETextTxn to CompositionTransaction.  "Composition" is now used in some web standard specs, e.g., CompositionEvent defined by UI Events.

This patch also renames nsEditor::CreateTxnForIMEText() to nsEditor::CreateTxnForComposition().

MozReview-Commit-ID: JN0GgGdpAWG
2016-07-07 15:42:08 +09:00