updateFromEvent method
Updates capabilities based on an event.
Returns true if any capability changed.
Implementation
bool updateFromEvent(Event event) {
if (event is KittyGraphicsEvent) {
if (!hasKittyGraphics) {
hasKittyGraphics = true;
return true;
}
} else if (event is KeyboardEnhancementsEvent) {
if (!hasKeyboardEnhancements) {
hasKeyboardEnhancements = true;
return true;
}
} else if (event is PrimaryDeviceAttributesEvent) {
primaryAttributes = event.attrs;
// Attribute 4 is Sixel.
final oldSixel = hasSixel;
hasSixel = event.attrs.contains(4);
return oldSixel != hasSixel;
} else if (event is BackgroundColorEvent) {
backgroundColor = event.color;
return true;
} else if (event is ColorPaletteEvent) {
if (event.color != null) {
palette[event.index] = event.color!;
return true;
}
} else if (event is SecondaryDeviceAttributesEvent) {
// iTerm2 often identifies itself in secondary DA or via environment.
// We also check environment in Terminal.
}
return false;
}