deletionSequencesSince method
Deletion sequences needed before rendering this frame after previous.
Implementation
Iterable<String> deletionSequencesSince(
TerminalGraphicsFrame previous, {
int quiet = 2,
}) sync* {
if (!hasRetainedGraphics && previous.hasRetainedGraphics) {
yield deleteAllRetainedGraphics(quiet: quiet);
return;
}
if (!hasRetainedGraphics || previous.retainedImageIds.isEmpty) {
if (hasRetainedGraphics &&
previous.hasRetainedGraphics &&
previous.retainedImageIds.isEmpty) {
yield deleteAllRetainedGraphics(quiet: quiet);
}
return;
}
if (retainedImageIds.isEmpty) {
yield deleteAllRetainedGraphics(quiet: quiet);
return;
}
for (final staleId in previous.retainedImageIds.difference(
retainedImageIds,
)) {
yield deleteRetainedGraphic(staleId, quiet: quiet);
}
}