Motif-Zwischenablage (XmClipboard)
Motifs eigene Zwischenablage: eine API mit Sperren, Formaten und Undo, die Daten in Properties am Root-Fenster statt beim Besitzer ablegte, sodass das Kopierte das Programm überlebte, aus dem es stammte.
X-Selections haben eine eingebaute Schwäche: Wer einfügt, holt den Text vom Programm, das kopiert hat, und ist dieses Programm weg, gibt es nichts einzufügen. Motif 1.0 begegnete dem 1989 mit einer eigenen Zwischenablage im Server. Ein Kopiervorgang ist eine Sequenz: XmClipboardStartCopy, ein oder mehrere XmClipboardCopy mit je einem Format, XmClipboardEndCopy; das Abrufen spiegelt das mit XmClipboardRetrieve. Die Daten und ein Verzeichnis der Einträge lagen in Properties am Root-Fenster, _MOTIF_CLIP_HEADER und Verwandten, mit einer Sperre, die gleichzeitiges Schreiben verhinderte. XmClipboardCopyByName registrierte nur ein Format und ließ den Besitzer den Inhalt erst liefern, wenn jemand wirklich danach fragte – gedacht für große Bilder –, und XmClipboardUndoCopy stellte den vorherigen Eintrag wieder her.
Der Preis: Der X-Server wurde zur kleinen Datenbank, und nur Motif-Programme konnten sie lesen. Um keine Insel zu bleiben, übernahm die Bibliothek zusätzlich die CLIPBOARD-Selection und beantwortete Anfragen aus den Properties, sodass ICCCM-konforme Programme aus Motif einfügen konnten, umgekehrt aber nicht. Als Clipboard-Manager das Überlebensproblem auf der ICCCM-Seite in den 2000ern lösten, wurde das Design zur Kuriosität; wer auf einem modernen System mit einem einzigen offenen Motif-Programm xlsatoms ausführt, sieht die Atome trotzdem auftauchen.