Drawing in a real X window is done relative to its upper left-hand corner
the structures are currently recalculated for each change in the equation, and for every window in which the equation is viewed. This is wasteful, and might be avoided at some point.
In Lisp, eq does a direct pointer test. Since all atoms are typically pointers to some atom object, an atom is eq to itself. Numbers may or may not be eq to themselves. Equal however, is true whenever eq is, and additionally, it will compare aggregate structures, and usually finds numbers match themselves.
i.e. addition and multiplication operations can act on more than two arguments
X servers with a small amount of memory, or slow network interfaces may run into resources limits
It is, of course, possible to ask X not to draw the border.
A glyph is a graphical object
The X server sends these every time the pointer moves into a new window. The buttons use them to invert themselves for instance. Note that this implies that a light weight view can't have an event handler at this level. It can, however receive X level events that are passed to it. One of the things the selectionEventHandler actually does is figure out which light weight view to pass events on to
The default action for the a handler is to replace the help text at the bottom of the window with mode specific help text
Actually, a socketpair(2)
Self makes most writing and reading from file descriptors non-blocking in order for it to multitask, so deadlocking with both Self and Mathematica waiting on a read(2) is not going to be a problem.