IT-Lexikon › Programmierung › SubstructureRedirect

SubstructureRedirect

Programmierung Svenska → Aktualisiert: 2026-10-07

Die X11-Ereignismaske, die einen gewöhnlichen Client zum Fenstermanager macht: Der Server führt die Fensteranfragen anderer Programme nicht mehr selbst aus, sondern reicht sie an diesen Client weiter.

Das X-Protokoll von 1987 weigerte sich zu entscheiden, wohin Fenster gehören, ließ aber einen Haken offen. Der Client, der SubstructureRedirectMask für ein Fenster auswählt – in der Praxis das Root-Fenster –, bekommt jeden Versuch anderer Clients, dessen Kindfenster abzubilden, zu verschieben, in der Größe zu ändern oder umzustapeln, als MapRequest, ConfigureRequest und CirculateRequest umgeleitet. Auf dem Bildschirm passiert nichts, bis der Fenstermanager die Anfrage selbst ausführt, verändert oder nicht, oder sie ignoriert. Dort liegt die ganze Macht: das Fenster in einen Rahmen packen (Reparenting), es auf den Desktop zwingen oder ihm verbieten, größer als der Bildschirm zu werden, sind nur verschiedene Antworten auf dasselbe Ereignis.

Der Server erlaubt pro Fenster genau einen solchen Client. Versucht ein zweiter Fenstermanager, die Maske zu wählen, erhält er BadAccess – daher die Meldung „another window manager is already running“. SubstructureNotifyMask ist der passive Bruder, der nur meldet, was geschehen ist. Override-Redirect-Fenster wie Menüs und Tooltips umgehen den ganzen Mechanismus. Wayland kennt nichts Entsprechendes, weil der Compositor der Server ist – weshalb ein Fenstermanager nicht mehr etwas ist, das man einfach austauscht.

← Zurück zum Lexikon