¿El cambio a Wayland solucionará la imposibilidad de pegar desde ventanas cerradas?

¿El cambio a Wayland solucionará la imposibilidad de pegar desde ventanas cerradas?

he recientementelea sobre cómo Xorg tiene la culpaPara elerror infameen el que un usuario no puede copiar y pegar desde una ventana después de haberla cerrado. Y también sé sobre el eventual cambio planeado aWayland como reemplazo de X.

Si este error es el resultado de X, y X será reemplazado por Wayland, ¿es posible que llegue una solución en ese momento? Tengo curiosidad por saber si esto es técnicamente posible y si actualmente está en los planes para ello.

Respuesta1

Bueno, no creo que sea un error como tal, es más bien una característica que tiene algunas consecuencias no deseadas :) Además, tengo entendido que otros "administradores del portapapeles", es decir, enventanasyMac OS X, funcionan de una manera muy similar: cuando se realiza la operación Copiar, la aplicación simplemente notifica al administrador del portapapeles: "oye, tengo algo" sin pasar los datos reales (aunque en los sistemas operativos mencionados anteriormente una aplicaciónpoderalmacenar físicamente datos en el portapapeles (XWindow deja esto a un "administrador de portapapeles", que es una aplicación separada).

La razón de esto quedará clara si consideramos que los datos copiados a menudo necesitan convertirse de un formato a otro antes de pegarlos. Ejemplo: estás copiando un marco de texto de un programa de publicación y lo pegas en el mismo programa; el resultado conserva el tamaño del marco de texto, los bordes, las transformaciones, etc. Luego pegas lo mismo en un procesador de texto; el resultado es algo de texto. con formato enriquecido pero obviamente las propiedades del marco de texto se pierden porque el procesador de texto no sabe nada sobre esto. Luego pegas lo mismo en un editor de texto; el resultado es simplemente texto sin formato.

Ahora bien, ¿cómo funciona? ¿Cómo se convierte el formato de datos propietario del programa de publicación en algo que el procesador de texto comprenda o simplemente en texto sin formato? Obviamente, la conversión no puede ser realizada por el servidor X porque no sabe nada acerca de todos los formatos de datos posibles, además, elrecepciónLa aplicación no puede realizar la conversión por el mismo motivo.

Según tengo entendido, cuando se copia algo, la aplicación notifica al administrador del portapapeles sobre los formatos en los que puede proporcionar los datos: "oye, tengo algo que puedo convertir a mi formato propietario, texto enriquecido". o texto plano".

Luego, otra aplicación comprueba si hay algo en el portapapeles en un formato que comprenda:

if (clipboad.contains_data_in_formats("image", "rich text", "plain text")) {
    enable_Paste_menu_item();
}

Luego, cuando se selecciona la acción Pegar, el resultado final es que elfuenteSe solicita a la aplicación que proporcione los datos en el formato requerido.

Cuando la aplicación está saliendo,el estandardice que puede guardar los datos en el administrador del portapapeles:

If a client needs to exit while owning the CLIPBOARD selection, 
it should request the clipboard manager to take over the ownership 
of the clipboard, using the SAVE_TARGETS mechanism. If there is no 
clipboard manager, or if the SAVE_TARGETS conversion fails, the 
application should simply exit.

Entonces, tengo entendido que es responsabilidad de la aplicación guardar los datos. Como tal, es poco probable que Wayland mejore algo a este respecto :)

información relacionada