mirror of
https://gerrit.wikimedia.org/r/mediawiki/extensions/VisualEditor
synced 2024-12-03 02:16:51 +00:00
83a592f312
This was broken, especially in wrappers. Changed the wrapping algorithm so that meta items are placed outside wrappers if possible. On the left-hand side, this is already the case: we don't open wrappers for meta items. On the right-hand side, this is accomplished by buffering the meta items and only inserting them when we encounter either real text (not whitespace) or the end of the wrapper. If we're interrupted by real text, we insert the meta items with the unmodified whitespace. If we're interrupted by the end of the wrapper, we insert the meta items outside of the wrapper with whitespace stripped. Internally, this is done by stripping the whitespace into the whitespace[0] of the meta item to its right. Then when we output the meta items, we either decide to 'restore' the whitespace, or to 'fixup' by also setting whitespace[3] on the element before the whitespace. Change-Id: Ibeea2a9906c4aae9fe6d284613edd6ec853ca5e7 |
||
---|---|---|
.. | ||
annotations | ||
lineardata | ||
metaitems | ||
nodes | ||
ve.dm.Annotation.js | ||
ve.dm.AnnotationFactory.js | ||
ve.dm.AnnotationSet.js | ||
ve.dm.BranchNode.js | ||
ve.dm.Converter.js | ||
ve.dm.DataString.js | ||
ve.dm.Document.js | ||
ve.dm.DocumentSlice.js | ||
ve.dm.DocumentSynchronizer.js | ||
ve.dm.IndexValueStore.js | ||
ve.dm.js | ||
ve.dm.LeafNode.js | ||
ve.dm.LinearData.js | ||
ve.dm.MetaItem.js | ||
ve.dm.MetaItemFactory.js | ||
ve.dm.MetaList.js | ||
ve.dm.Model.js | ||
ve.dm.ModelRegistry.js | ||
ve.dm.Node.js | ||
ve.dm.NodeFactory.js | ||
ve.dm.Surface.js | ||
ve.dm.SurfaceFragment.js | ||
ve.dm.Transaction.js | ||
ve.dm.TransactionProcessor.js |