focus_in and focus_out Events

The fields that can be unified in focus_in and focus_out events are:

  1. type(T) unifies T with focus_in or focus_out according to the event.
  2. serial(S) unifies S with the serial number of the last request processed by the server.
  3. send_event(B) unifies B, a boolean value, with one of

    true
    If the event was sent by another client.
    false
    If the event was sent by the server.
  4. display(D) unifies D with the ProXL Display the event was read from.
  5. window(W) unifies W with the ProXL Window receiving the event.
  6. mode(M) unifies M with one of

    normal
    If the keyboard is not grabbed.
    grab
    If the event is triggered by the start of a keyboard grab.
    ungrab
    If the event is triggered by the keyboard being ungrabbed.
    while_grabbed
    If the focus changes while the keyboard is grabbed.
  7. detail(D) unifies D with an atom identifying the relationship between the window that receives the event, the window that lost the focus, the window that got the focus, and the window that contained the pointer at the time of the focus change . One of: