Léxico TI › Programación › Portapapeles de Motif (XmClipboard)

Portapapeles de Motif (XmClipboard)

Programación Svenska → Actualizado: 2026-10-10

El portapapeles propio de Motif: una API con bloqueos, formatos y deshacer que guardaba los datos en propiedades de la ventana raíz en lugar de en el programa propietario, de modo que lo copiado sobrevivía al cierre del programa.

Las selecciones de X tienen una debilidad de fábrica: quien pega obtiene el texto del programa que lo copió, y si ese programa ya no existe no hay nada que pegar. Motif 1.0 lo resolvió en 1989 con un portapapeles propio almacenado en el servidor. Copiar es una secuencia: XmClipboardStartCopy, uno o más XmClipboardCopy con un formato cada uno, XmClipboardEndCopy; recuperar es el espejo con XmClipboardRetrieve. Los datos y un catálogo de entradas vivían en propiedades de la ventana raíz, _MOTIF_CLIP_HEADER y sus hermanas, con un bloqueo que impedía que dos programas escribieran a la vez. XmClipboardCopyByName registraba solo un formato y dejaba que el propietario entregara el contenido cuando alguien lo pidiera de verdad, para imágenes grandes, y XmClipboardUndoCopy restauraba la entrada anterior.

El precio fue convertir el servidor X en una pequeña base de datos que solo los programas Motif sabían leer. Para no quedarse aislada, la biblioteca tomaba además la propiedad de la selección CLIPBOARD y respondía a las peticiones desde las propiedades, de modo que los programas fieles al ICCCM podían pegar desde Motif, aunque no al revés. Cuando en los 2000 los gestores del portapapeles resolvieron el problema de la supervivencia por el lado del ICCCM, el diseño quedó como curiosidad, y quien ejecuta xlsatoms en un sistema moderno con un solo programa Motif abierto sigue viendo aparecer los átomos.

← Volver al léxico