In Java's AWT FocusEvent class:
There are two levels of focus events: permanent and temporary.
Permanent focus change events occur when focus is directly moved from one Component to another, such as through a call to requestFocus() or as the user uses the TAB key to traverse Components.
Temporary focus change events occur when focus is temporarily 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.
In JavaFX, a ChangeListener can be added to the focusedProperty as shown here, but how does one determine if the change is permanent?