SendEvent (X11)
Der X11-Request, mit dem ein Client einem fremden Fenster ein gefälschtes Ereignis zustellen lässt – versehen mit einem Flag, das die Fälschung verrät.
Mit XSendEvent füllt ein Client ein beliebiges Ereignis aus – ein KeyPress, ein ConfigureNotify, eine ClientMessage – und bittet den Server, es an ein Fenster, an das Fenster unter dem Zeiger oder an den Fokusinhaber zu liefern. Die Nutzlast prüft der Server nicht, setzt aber das oberste Bit des Ereigniscodes. Der Empfänger sieht es als Feld send_event und weiß: Hier hat kein Mensch etwas gedrückt.
Das Flag existiert aus Sicherheitsgründen. xterm ignoriert synthetische Tastendrücke standardmäßig – die Ressource allowSendEvents ist aus –, denn sonst könnte jeder Client auf dem Display Befehle in die Shell eines anderen tippen. Deshalb wurde XTEST mit echt aussehenden Ereignissen gebaut. ICCCM nutzt das Flag dagegen wie gedacht: Ein Fenstermanager muss nach dem Verschieben eines gerahmten Fensters ein synthetisches ConfigureNotify mit Root-Koordinaten schicken.