index

Xfocus

This is my transcript of http://cs.wwc.edu/~davija/XLIB/10-12.html.

http://www.ac3.edu.au/SGI_Developer/books/XLib_PG/sgi_html/ch09.html

Normal focus events are identified by XFocusInEvent or XFocusOutEvent structures whose mode member is set to NotifyNormal. Focus events while grabbed are identified by XFocusInEvent or XFocusOutEvent structures whose mode member is set to NotifyWhileGrabbed. The X server processes normal focus and focus events while grabbed according to the following:

When the focus moves from window A to window B, A is an inferior of B, and the pointer is in window P, the X server does the following:

f/focus-to-parent.png

When the focus moves from window A to window B, B is an inferior of A, and the pointer is in window P, the X server does the following:

f/focus-to-child.png


When the focus moves from window A to window B, window C is their least common ancestor, and the pointer is in window P, the X server does the following:

f/focus-to-brother.png

When the focus moves from window A to window B on different screens and the pointer is in window P, the X server does the following:

A -> PointerRoot / None (P)

When the focus moves from window A to PointerRoot (events sent to the window under the pointer) or None (discard), and the pointer is in window P, the X server does the following:


PointerRoot / None -> A (P)

When the focus moves from PointerRoot (events sent to the window under the pointer) or None to window A, and the pointer is in window P, the X server does the following:

PointerRoot -> None (P)

When the focus moves from PointerRoot (events sent to the window under the pointer) to None (or viceversa), and the pointer is in window P, the X server does the following: