initAttentionGuards method

void initAttentionGuards()

Implementation

void initAttentionGuards() {
  _docHasFocus = true;
  _docVisible = (document.visibilityState == 'visible');

  document.addEventListener(
    'visibilitychange',
    ((Event _) =>
        _docVisible = (document.visibilityState == 'visible')).toJS,
  );

  window.addEventListener(
    'focus',
    ((Event _) => _docHasFocus = true).toJS,
  );
  window.addEventListener(
    'blur',
    ((Event _) => _docHasFocus = false).toJS,
  );

  // Optional pointer hints (nice-to-have; not required)
  document.addEventListener(
    'pointerover',
    ((Event _) => _docHasFocus = true).toJS,
  );
  document.addEventListener(
    'pointerleave',
    ((Event _) => _docHasFocus = false).toJS,
  );

  document.addEventListener(
    'mouseleave',
    ((Event _) => _docHasFocus = false).toJS,
  );

  document.addEventListener(
    'mouseenter',
    ((Event _) => _docHasFocus = true).toJS,
  );
}