RCP 集成 citrix 导致Text没有焦点光标

在Windows2003上部署RCP应用时遇到焦点光标缺失问题,仅限于英文版系统。通过逐步排查发现SWT.Paint监听器是导致问题的原因。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

      RCP是基于Eclipse 3.0 ,用户的使用环境是在Windows2003 上安装RCP,critrix,使用者使用自己pc的web浏览器登陆critrix,启动RCP,critrix将本地RCP的界面传递到用户所有pc屏幕上。用户安装的是English Windows 2003。
当所有系统安装好,进行集成测试时,发现RCP上所有的Text都没有焦点光标,即鼠标点击Text,没有闪动的竖条。在中文Windows2003下测试,没有此问题。为了判断是swt的问题,还是自己的RCP的问题,集成显示Eclipse时,没有问题。
       用eclipse生成一个mail RCP的例子RCP,集成显示没有问题,把mail RCP的plugin放到本RCP的plugins目录下,启动本RCP后,mail plugin能够插入到本RCP中,但是也是没有Text焦点。断定是WorkbenchWindowAdvisor中出现的问题,因为eclipse runtime 启动哪个plugin 作为RCP的Application,会调用它的WorkbenchWindowAdvisor。通过屏蔽代码得出问题出现在postWindowOpen()里面的ScreenLocker里面。
ScreenLocker的作用是如果用户在设定的时间内,没有点击键盘,点击鼠标,屏幕最大最小化,则所定RCP,用户输入登陆密码才能继续使用。实现整个RCP监控鼠标,键盘,用了如下代码:
Display.getDefault().addFilter(SWT.KeyDown, listener);
Display.getDefault().addFilter(SWT.MouseDown, listener);
Display.getDefault().addFilter(SWT.Paint, listener);

      最后试验出是SWT.Paint导致此问题,去掉此句则没有问题。开来citrix也不是万能的,什么图像都能传。
因为要出版本,就牺牲了监控界面变化的功能,有机会再想办法加上吧。不得已呀。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值