enqueueScreenEvent method
Implementation
void enqueueScreenEvent(ScreenEvent event) {
if (event.type == ScreenEventType.onScreen) {
// If we're enqueuing an onScreen event, remove any pending offScreen events.
_screenEventQueue.removeWhere((e) => e.type == ScreenEventType.offScreen);
// De-dupe onscreen: an element may be mounted/rebuilt multiple times while
// remaining visible (e.g. style-driven rebuilds). Tests and framework code
// expect `onscreen` to be a one-shot notification per visible lifecycle.
if (_isOnScreen) return;
_screenEventQueue.removeWhere((e) => e.type == ScreenEventType.onScreen);
} else if (event.type == ScreenEventType.offScreen) {
// If we're enqueuing an offScreen event, remove any pending onScreen events.
_screenEventQueue.removeWhere((e) => e.type == ScreenEventType.onScreen);
if (!_isOnScreen) return;
_screenEventQueue.removeWhere((e) => e.type == ScreenEventType.offScreen);
}
_screenEventQueue.add(event);
_processEventQueue();
}