There are two levels of focus change events: permanent and temporary.
Permanent focus change events occur when focus is directly moved
from one component to another, such as through calls to requestFocus()
or as the user uses the Tab key to traverse components.
Temporary focus change events occur when focus is
gained or lost for a component as the indirect result of another
operation, such as window deactivation or a scrollbar drag. In this
case, the original focus state will automatically be restored once
that operation is finished, or for the case of window deactivation,
when the window is reactivated. Both permanent and temporary focus
events are delivered using the FOCUS_GAINED and FOCUS_LOST event ids;
the levels may be distinguished in the event using the isTemporary()
method.