Bem, eu não acho que seja um bug como tal, é um recurso que tem algumas conseqüências indesejadas :) Além disso, meu entendimento é que outros "gerenciadores de clipboard", ou seja, em Windows e MacOS X , funcionam de maneira muito semelhante - quando a operação de cópia é realizada, o aplicativo apenas notifica o gerenciador da área de transferência - "ei, eu tenho algo" sem passar os dados reais (embora nos sistemas operacionais mencionados acima um aplicativo possa armazenar fisicamente os dados na área de transferência - folhas XWindow isso para um "gerenciador de área de transferência", que é um aplicativo separado).
A razão para isso ficará clara se você considerar que os dados copiados geralmente precisam ser convertidos de um formato para outro antes de serem colados. Exemplo: você está copiando um quadro de texto de um programa de publicação e colá-lo no mesmo programa - o resultado preserva o tamanho do quadro de texto, bordas, transformações etc. Depois, cola a mesma coisa em um processador de texto - o resultado é algum texto com formatação rica, mas obviamente as propriedades do quadro de texto são perdidas porque o processador de texto não sabe nada sobre isso. Então você cola a mesma coisa em um editor de texto - o resultado é apenas texto sem formatação.
Agora, como funciona? Como o formato de dados proprietário do programa de publicação está sendo convertido em algo que o processador de texto entende ou apenas para texto simples? Obviamente, a conversão não pode ser feita pelo servidor X porque não sabe nada sobre todos os possíveis formatos de dados, também, o aplicativo receive não pode fazer a conversão pelo mesmo motivo.
Meu entendimento do processo é que quando algo é copiado, o aplicativo notifica o gerenciador da área de transferência sobre os formatos em que ele pode fornecer os dados: "Ei, eu tenho algo que eu posso converter em meu formato proprietário. , rich text ou texto simples ".
Outra aplicação, em seguida, verifica se há algo na área de transferência em um formato que ele entenda:
if (clipboad.contains_data_in_formats("image", "rich text", "plain text")) {
enable_Paste_menu_item();
}
Em seguida, quando a ação Colar é selecionada, o resultado final é que o aplicativo fonte é solicitado a fornecer os dados no formato necessário.
Quando o aplicativo está sendo encerrado, o padrão diz que pode salvar os dados no gerenciador da área de transferência:
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.
Então, meu entendimento é que é responsabilidade do aplicativo salvar os dados. Como tal, é provavelmente improvável que o Wayland melhore qualquer coisa a este respeito:)