ICCCM定义了三个选项1)主要2)次要3)剪贴板.但是在xlib中,xatom.h只定义了XA_PRIMARY和XA_SECONDARY,但剪贴板没有这样的原子.所以我怀疑剪贴板是由xlib实现还是必须由主要和次要的单个应用程序实现?
如果它必须由各个应用程序实现,那么不同的应用程序如何与剪贴板交互,如同从一个应用程序的窗口复制并粘贴到另一个应用程序的窗口……?不同应用程序如何共享公共缓冲区?任何人都可以帮助在Linux中实际执行剪贴板..?我已经完成了这个 link .但是我找到了很多关于实现的信息.
解决方法:
bash $xlsatoms | fgrep CLIPBOARD
231 CLIPBOARD
bash $fgrep -r XA_CLIPBOARD /usr/include/X11
/usr/include/X11/Xmu/Atoms.h: _XA_CLIPBOARD,
/usr/include/X11/Xmu/Atoms.h:#define XA_CLIPBOARD(d) XmuInternAtom(d, _XA_CLIPBOARD)
所以我们有一个原子,没问题.您也可以按名称实习.
CLIPBOARD选择的实现方式与其他选择完全相同.唯一的区别是选择所有权被断言的时刻.对于PRIMARY,当用户选择某事时它被断言;对于CLIPBOARD,它是用户剪切或复制的时候.