@@ -169,6 +169,7 @@ class BlockFormatter(editor: AztecText, val listStyle: ListStyle, val quoteStyle
169169
170170 fun <T : IAztecBlockSpan > removeEntireBlock (type : Class <T >) {
171171 editableText.getSpans(selectionStart, selectionEnd, type).forEach {
172+ IAztecNestable .pullUp(editableText, selectionStart, selectionEnd, it.nestingLevel)
172173 editableText.removeSpan(it)
173174 }
174175 }
@@ -269,6 +270,9 @@ class BlockFormatter(editor: AztecText, val listStyle: ListStyle, val quoteStyle
269270 BlockHandler .set(editableText, makeBlockSpan(span.javaClass, textFormat, span.nestingLevel, span.attributes), endOfBounds, spanEnd)
270271 } else {
271272 // tough luck. The span is fully inside the line so it gets axed.
273+
274+ IAztecNestable .pullUp(editableText, editableText.getSpanStart(span), editableText.getSpanEnd(span), span.nestingLevel)
275+
272276 editableText.removeSpan(span)
273277 }
274278 }
@@ -705,15 +709,23 @@ class BlockFormatter(editor: AztecText, val listStyle: ListStyle, val quoteStyle
705709 when (textFormat) {
706710 AztecTextFormat .FORMAT_ORDERED_LIST -> liftListBlock(AztecOrderedListSpan ::class .java, start, end)
707711 AztecTextFormat .FORMAT_UNORDERED_LIST -> liftListBlock(AztecUnorderedListSpan ::class .java, start, end)
708- AztecTextFormat .FORMAT_QUOTE -> editableText.getSpans(start, end, AztecQuoteSpan ::class .java).forEach { editableText.removeSpan(it) }
709- else -> editableText.getSpans(start, end, ParagraphSpan ::class .java).forEach { editableText.removeSpan(it) }
712+ AztecTextFormat .FORMAT_QUOTE -> editableText.getSpans(start, end, AztecQuoteSpan ::class .java).forEach {
713+ IAztecNestable .pullUp(editableText, start, end, it.nestingLevel)
714+ editableText.removeSpan(it)
715+ }
716+ else -> editableText.getSpans(start, end, ParagraphSpan ::class .java).forEach {
717+ IAztecNestable .pullUp(editableText, start, end, it.nestingLevel)
718+ editableText.removeSpan(it)
719+ }
710720 }
711721 }
712722
713723 private fun liftListBlock (listSpan : Class <out AztecListSpan >, start : Int , end : Int ) {
714724 editableText.getSpans(start, end, listSpan).forEach {
715725 val wrapper = SpanWrapper (editableText, it)
716726 editableText.getSpans(wrapper.start, wrapper.end, AztecListItemSpan ::class .java).forEach { editableText.removeSpan(it) }
727+
728+ IAztecNestable .pullUp(editableText, start, end, wrapper.span.nestingLevel)
717729 wrapper.remove()
718730 }
719731 }
0 commit comments