LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1241|回复: 8

移动应用程序窗口,Fcitx的窗口会消失,是个Bug吗?

[复制链接]
发表于 2004-3-23 11:18:04 | 显示全部楼层 |阅读模式
我使用Red Hat 9.0 (窗口环境Kde), 安装Fcitx2.0,使用时:例如

打开一个控制台窗口(图形界面),再Ctrl+Space,开启Fcitx中文输入模式,此时可以向控制台输入中文(我用拼音输入)。这时,通过鼠标左键拉动控制台窗口的顶条来移动控制台窗口,此时Fcitx的主窗口会消失。只有将控制台窗口最小化,再最大化才能使Fcitx的主窗口重新出现。为什么会这样?

就程序讲,是因为移动窗口后认为IC变了,所以会重新Create一个新的IC。可是移动应用程序窗口,其输入焦点并没有改变,为什么会建立新的IC呢?
 楼主| 发表于 2004-3-26 14:38:00 | 显示全部楼层
大家没有这个问题吗?有人能告诉我为什么吗?
发表于 2004-3-29 09:01:00 | 显示全部楼层
这个问题回头看一下,不过,我这儿没这个问题
 楼主| 发表于 2004-3-30 08:19:37 | 显示全部楼层
真高兴得到你的回复。会不会是我的系统的问题呢?从程序的逻辑结构看没有什么问题。期待你的结果。
发表于 2004-3-30 21:29:46 | 显示全部楼层
mandrake9.2没这个问题。
发表于 2004-3-30 21:57:28 | 显示全部楼层
我刚刚装好的fcitx。。按楼主说的试了下。。果然是这样。。。

不过我又发现一个事了。。那就是。。。
如果我打开了终端后。。先把终端移动一下。再启动fcitx。。然后打中文。。这样你下次再移动终端的话。。fcitx就不会消失。。可是如果你中间换了另一个程序。再切换回来的时候。。又看不到fcitx了。。这时候又要移动一下终端。。哈。。fcitx又出来了。。很好玩的说。。。。现象和上面的相反哈。。

我的是redhat as3.。。。。
 楼主| 发表于 2004-3-31 08:25:23 | 显示全部楼层
炽天使, 很高兴听到你试验的结果。原因是这样的:

对于一个应用程序,如果它“开启”了输入法,系统可以记住。那么,当你换了另一个程序,再切换回来的时候,输入法可以知道对于这个应用程序,输入法已经“开启”,那么它就会显示输入法窗口。

现在的问题是:当你移动窗口后,其实并没有切换别的程序,但是输入法认为“移动窗口”后的为另一个程序。

对于你试验的情况:当你换了另一个程序,再切换回来的时候,输入法得到的不是你“移动窗口”的情况,所以不会显示你开启了输入法,但是当你“移动窗口”后,输入法就会显示输入法窗口了。

如果你读过源程序,这里所谓的不同的程序是不同的IC,我想对于程序深入的问题, Yuking 可以给我们一个权威的答复。
发表于 2004-3-31 09:57:11 | 显示全部楼层
这个IC的问题很讨厌,有些程序会给出不正确的值(如mozilla),因此会出问题。我以前和楚狂讨论过个问题,但没有结果。
发表于 2004-3-31 10:49:01 | 显示全部楼层
我这里没有这个问题。kde 3.1.5, scim.

在移动窗口的过程中输入法窗口会消失,这是因为应用程序给输入法发出了 focus out 消息。但当释放鼠标的时候输入法又会获得 focus in 消息从而重新显示输入法窗口。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表