gecko-dev/editor
Masayuki Nakano a50a0700d4 Bug 1530649 - Improve composition string handling which ends with whitespaces r=m_kato
If insertion string ends with ASCII whitespace and there is no following
content in the block, `HTMLEditRules::AdjustWhitespaces()` needs to insert
`<br>` element.  It's called only by `HTMLEditRules::AfterEditInner()` and
that does only simple things with `WSRunObject`.  Therefore, this moves the
code into `AfterEditInner()`.

For making it adjust the whitespaces, `HTMLEditRules::WillInsertText()` needs
to notify `AfterEditInner()` of dirty range with `mDocChangeRange`.  Therefore,
this patch makes it set `mDocChangeRange` manually after inserting composition
string.

On the other hand, there is another bug.  `WSRunObject` was designed to treat
only inserting text for `WSRunObject::InsertText()`.  I.e., not designed to
treat replacing existing composition string with new string.  Therefore,
`WSRunObject::InsertText()` adjusts whitespaces only around start of
composition string.  Therefore, if composition string ends with an ASCII
whitespace, it's not replaced with NBSP and that causes:
- failing `WSRunObject::AdjustWhitespaces()` inserts `<br>` element at
  `AfterEditInner()` of committing composition.
- then, next composition's first `WSRunObject::InsertText()` removes the
  last whitespace due to not followed by `<br>` nor any other content.
Therefore, this patch makes `WSRunObject` takes 2 DOM points to be able to
treat replaced range.

In strictly speaking, the latter change require more changes and tests for
supporting replacement with any other methods.  However, it's risky and out
of scope of this bug.

Differential Revision: https://phabricator.services.mozilla.com/D26423

--HG--
extra : moz-landing-system : lando
2019-04-09 05:28:38 +00:00
..
composer Bug 1540969 - Get rid of nsPICommandUpdater r=bzbarsky 2019-04-03 12:53:54 +00:00
libeditor Bug 1530649 - Improve composition string handling which ends with whitespaces r=m_kato 2019-04-09 05:28:38 +00:00
reftests Bug 1513343 - Remove textarea binding and replace usages with html:textarea. r=bgrins,dao 2019-03-05 11:41:42 +00:00
spellchecker Bug 1519636 - clang-format-8: Reformat recent changes to the Google coding style r=Ehsan 2019-04-05 21:41:42 +00:00
txmgr Bug 1542146 - Apply the change with the option StatementMacros from clang-format-8 r=andi 2019-04-05 21:42:17 +00:00
AsyncSpellCheckTestHelper.jsm Bug 1489980 - Enable ESLint for editor/ - Manual fixes. r=masayuki 2018-09-13 07:59:47 +00:00
moz.build Bug 1491199 - Get rid of nsIEditorBlobListener. r=masayuki 2018-09-18 04:34:21 +00:00
nsIDocumentStateListener.idl
nsIEditActionListener.idl Bug 1489047 - Change almost all DOMString occurrences in XPIDL files to AString. r=nika 2018-09-06 18:02:43 +10:00
nsIEditor.idl Bug 1539356 - Mark EditorBase::InsertNodeTransaction() as MOZ_CAN_RUN_SCRIPT r=m_kato 2019-03-30 11:55:29 +00:00
nsIEditorMailSupport.idl Bug 1539356 - Mark EditorBase::InsertNodeTransaction() as MOZ_CAN_RUN_SCRIPT r=m_kato 2019-03-30 11:55:29 +00:00
nsIEditorObserver.idl Bug 1432528 - part 4: Remove nsIEditorObserver::BeforeEditAction() and nsIEditorObserver::CancelEditAction() because nobody implements them r=m_kato 2018-01-24 14:31:29 +09:00
nsIEditorSpellCheck.idl Bug 1533293 - part 3: Make editor and ContentEventHandler not use Selection::Extend() due to too slow r=m_kato 2019-03-26 10:09:47 +00:00
nsIEditorStyleSheets.idl Bug 1470361: Remove nsIEditorStyleSheets.addStyleSheet / removeStyleSheet / replaceStyleSheet. r=m_kato 2018-06-25 10:46:38 +02:00
nsIHTMLAbsPosEditor.idl Bug 1484136 - Create HTMLEditor::RefreshGrabberInternal() for internal use r=m_kato 2018-09-11 05:30:33 +00:00
nsIHTMLEditor.idl Bug 1539356 - Mark EditorBase::InsertNodeTransaction() as MOZ_CAN_RUN_SCRIPT r=m_kato 2019-03-30 11:55:29 +00:00
nsIHTMLInlineTableEditor.idl Bug 1485929 - Create HTMLEditor::RefreshInlineTableEditingUIInternal() for internal use r=m_kato 2018-09-11 12:10:54 +00:00
nsIHTMLObjectResizer.idl Bug 1485921 - Create HTMLEditor::RefreshResizersInternal() for internal use r=m_kato 2018-09-11 08:15:52 +00:00
nsIPlaintextEditor.idl Bug 1540062 - Get rid of nsIPlaintextEditor.setWrapColumn. r=masayuki 2019-03-29 09:44:36 +00:00
nsITableEditor.idl Bug 1533293 - part 3: Make editor and ContentEventHandler not use Selection::Extend() due to too slow r=m_kato 2019-03-26 10:09:47 +00:00
nsIURIRefObject.idl Bug 1489047 - Change almost all DOMString occurrences in XPIDL files to AString. r=nika 2018-09-06 18:02:43 +10:00