我已经在 Xlib 程序中实现了文本字符串的复制粘贴。当我的程序拥有当前选择,并且我粘贴到 xterm、gimp 中的文本字段或 firefox 中时,它工作正常:我粘贴到的程序将 SelectionRequest 事件发送到我的程序,目标为 XA_UTF8_STRING ("UTF8_STRING "),我的程序会适当响应并粘贴字符串。
但是,当我的程序拥有当前选择,并且我尝试粘贴到 Thunderbird(版本 16.0.2)中的消息编写窗口或 SeaMonkey Web 浏览器(版本 2.20)中的文本字段中时,Thunderbird 和 SeaMonkey 会向我的程序发送一个 SelectionRequest 事件。使用目标 XA_TARGETS(“TARGETS”)进行程序,并且出现问题。我的理解是,我的程序应该响应它可以提供的一系列目标 - 我的程序的相关代码如下。(注意这是在64位机器上,Atom类型是64位)。Thunderbird / SeaMonkey 似乎对我的回复不满意,因为他们随后向我的程序发送了许多具有不同目标的后续 SelectionRequest 事件,就好像他们试图查看我将返回哪一个(他们尝试 application/x-moz-nativehtml, text/html、application/x-moz-file、image/png、image/jpeg、image/gif),然后最后尝试目标 UTF8_STRING,我的代码成功响应并粘贴了字符串。这一切可能需要 1 秒或更长时间,因此在粘贴字符串之前会有明显的延迟。
为了尝试调试,我修改了代码,以便当我粘贴到我的程序中时,另一个程序是所有者,我向它们发送一个带有目标 XA_TARGETS 的 SelectionRequest 事件,这样我就可以看到 Thunderbird 或 SeaMonkey 如何响应。我返回一个 SelectionNotify 事件,目标为 XA_TARGETS,并且该事件的属性设置为我请求的属性,当我在自己的窗口上读取该属性时,我发现它是一个类型为 XA_ATOM、格式为 32、长度为 0 的数组。因此,当我向 Thunderbird 或 SeaMonkey 询问时,我似乎没有从他们那里得到任何目标数组。
平台:Ubuntu 12.10 Linux x86_64
我使用的参考: http://svn.gna.org/svn/warzone/trunk/lib/betawidget/src/platform/sdl/clipboardX11.c
...
if ( event.type == SelectionRequest ) {
Atom propertyOfRequestorToSet = event.xselectionrequest.property==None ? XA_PRIMARY : …Run Code Online (Sandbox Code Playgroud) 我用 Visual Studio 2017 (15.9.10) 新安装了 Unity 2018.3.10。由于 Visual Studio 中的错误(“DEP0100:请确保目标设备启用了开发人员模式。由于错误 80004005,无法在 127.0.0.1 上获得开发人员许可证”),我无法将准系统 3D 统一应用程序部署到 HoloLens。以下是重现的步骤:
在 Unity 中创建新的 3D 场景。将相机位置设置为 0,0,0 并将相机清晰颜色设置为纯黑色。在相机前创建一个尺寸为 0.1x0.1x0.1 的红色立方体
窗口/包管理器:删除广告、分析库、应用内采购、TextMesh Pro、Unity Collaborate,因为我不需要这些
屏幕截图中显示的构建设置和项目设置(质量和播放器设置)。脚本后端 = IL2CPP
HoloLens 的操作系统版本为 10.0.17763.316。在设置/更新和安全/对于开发人员下,我设置“使用开发人员功能”=on、“启用设备门户”=on
我不知道是否有必要,但在我的 PC 上,我也进行了设置/更新和安全/对于开发人员,选择“开发人员模式”、“启用设备门户”=on、“设备发现”=on