Fensterattribute (X11)
Die fünfzehn Einstellungen pro Fenster, die der X-Server vorhält – Hintergrund, Rand, Ereignismaske, Cursor, Farbtabelle und ein paar mehr –, und die ein Client selektiv über eine Bitmaske ändert.
Ein X-Fenster ist mehr als ein Rechteck. Bei XCreateWindow und später über den Request ChangeWindowAttributes übergibt der Client eine XSetWindowAttributes-Struktur samt Maske wie CWBackPixel | CWEventMask; gelesen werden nur Felder, deren Bit gesetzt ist. Dort leben Hintergrundfarbe oder -Pixmap, Randfarbe, Bit- und Fenster-Gravity, Backing Store, Save-under, Override-Redirect, die Ereignismaske, die Do-not-propagate-Maske, die Colormap und der Cursor.
Der Hintergrund kennt zwei Sonderwerte mit langer Geschichte. None heißt, der Server malt nichts, sodass sichtbar bleibt, was darunter lag, bis das Programm zeichnet – Quelle vieler Geisterbilder beim Größenändern. ParentRelative borgt sich den Hintergrund des Elternfensters und war die Grundlage der Pseudo-Transparenz. Die Attribute mit XGetWindowAttributes zurückzulesen kostet einen Roundtrip.