jenkins-bot has submitted this change and it was merged.
Change subject: Use insertContent with templates when range is collapsed
......................................................................
Use insertContent with templates when range is collapsed
We may be trying to insert a block into a paragraph. fixUpInsertion
handles this, but not if use a replace transactions.
Bug: T136279
Change-Id: I1401da52676e79f38ef835a32d2c76004b75fb4e
(cherry picked from commit bc3edc77124cb7caed656bbdd0dd1a73ddcca762)
---
M modules/ve-mw/dm/models/ve.dm.MWTransclusionModel.js
1 file changed, 20 insertions(+), 16 deletions(-)
Approvals:
Jforrester: Looks good to me, approved
jenkins-bot: Verified
diff --git a/modules/ve-mw/dm/models/ve.dm.MWTransclusionModel.js
b/modules/ve-mw/dm/models/ve.dm.MWTransclusionModel.js
index ce98bd2..8dbd870 100644
--- a/modules/ve-mw/dm/models/ve.dm.MWTransclusionModel.js
+++ b/modules/ve-mw/dm/models/ve.dm.MWTransclusionModel.js
@@ -65,24 +65,28 @@
nodeClass = ve.dm.MWTransclusionNode;
function insertNode( isInline ) {
- // Generate a replacement transaction instead of using
surfaceFragment.insert (which
- // generates a removal and insertion) as blanking the
reference triggers T135127.
- // TODO: Once T135127 is fixed, revert to using
surfaceFragment.insert.
var type = isInline ? nodeClass.static.inlineType :
nodeClass.static.blockType,
- tx = ve.dm.Transaction.newFromReplacement(
- surfaceFragment.getDocument(),
-
surfaceFragment.getSelection().getCoveringRange(),
- [
- {
- type: type,
- attributes: {
- mw:
model.getPlainObject()
- }
- },
- { type: '/' + type }
- ]
+ range =
surfaceFragment.getSelection().getCoveringRange(),
+ data = [
+ {
+ type: type,
+ attributes: {
+ mw:
model.getPlainObject()
+ }
+ },
+ { type: '/' + type }
+ ];
+
+ if ( range.isCollapsed() ) {
+ surfaceFragment.insertContent( data );
+ } else {
+ // Generate a replacement transaction instead
of using surfaceFragment.insertContent
+ // (which generates a removal and insertion) as
blanking a reference triggers T135127.
+ // TODO: Once T135127 is fixed, revert to using
surfaceFragment.insert.
+ surfaceFragment.getSurface().change(
+ ve.dm.Transaction.newFromReplacement(
surfaceFragment.getDocument(), range, data )
);
- surfaceFragment.getSurface().change( tx );
+ }
deferred.resolve();
}
--
To view, visit https://gerrit.wikimedia.org/r/290972
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: I1401da52676e79f38ef835a32d2c76004b75fb4e
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/VisualEditor
Gerrit-Branch: wmf/1.28.0-wmf.3
Gerrit-Owner: Jforrester <[email protected]>
Gerrit-Reviewer: Esanders <[email protected]>
Gerrit-Reviewer: Jforrester <[email protected]>
Gerrit-Reviewer: jenkins-bot <>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits