LinuxSir.cn,穿越时空的Linuxsir!

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

fcitx在openoffice掉字问题的修正

[复制链接]
发表于 2009-5-18 16:53:36 | 显示全部楼层 |阅读模式
fcitx输入法很好,尤其是现在的svn最新版,已经修正了大多数问题,而且系统托盘图标也起作用了。

但是,一个非常非常郁闷的问题就 是在openoffice里面掉字。

不知道yuking为什么不修正这个问题,现在情况虽然好点,但是偶尔出现的掉字现象让人感觉像吃了 一个苍蝇。

究其原因,在ime.c里面,键盘事件的处理方式上,fcitx对于普通输入字符处理KeyRelease事件我觉得不妥。

比 如scim和ibus,他们在处理输入字符的事件时,均做如下处理:如果是普通的字符(keycode在32-126之间),处理keypress而乎略 keyrelease。

而openoffice掉字,就是由keyrelease引起的。

所以,我修改了一下源代码,把 普通字符的KeyRelease处理逻辑整个去掉

用了一会,发现还可以,在Openoffice里面已经很难遇到掉字现象了

所 以,发上来,共享之。

补丁内容:
  1. diff -aur fcitx-svn/src/ime.c fcitx-svn.new/src/ime.c
  2. ---  fcitx-svn/src/ime.c    2009-05-16 21:24:18.257935370 +0800
  3. +++  fcitx-svn.new/src/ime.c    2009-05-18 16:33:13.500898670 +0800
  4. @@  -335,7 +335,9 @@
  5. #ifdef _DEBUG
  6.      printf ("KeyRelease=%d   iKeyState=%d  KEYCODE=%d  iKey=%d\n", (call_data->event.type ==  KeyRelease), iKeyState, kev->keycode, iKey);
  7. #endif
  8. -
  9. +     if ((iKey >= 32 ) && (iKey <= 126) &&  (call_data->event.type == KeyRelease)) {
  10. +        return;
  11. +    }
  12.       if (call_data->event.type == KeyRelease) {   
  13.      if  (ConnectIDGetState (call_data->connect_id) != IS_CLOSED) {
  14.           if ((kev->time - lastKeyPressedTime) < 500 &&  (!bIsDoInputOnly)) {
复制代码

或者从附件下载。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
发表于 2009-5-18 17:16:34 | 显示全部楼层
不错, 顶一个. 以前见过类似的一个贴子, 不知道现在fcitx是啥状态, 现在改用ibus了
回复 支持 反对

使用道具 举报

发表于 2009-5-20 14:46:19 | 显示全部楼层
不错,要顶!支持fcitx越做越好。
回复 支持 反对

使用道具 举报

发表于 2009-5-21 18:32:25 | 显示全部楼层
svn r227 已经更新了。现在可以选择是否编译系统托盘图标。
回复 支持 反对

使用道具 举报

发表于 2009-5-22 11:34:08 | 显示全部楼层
建议递交fcitx开发人员,集成进svn。
回复 支持 反对

使用道具 举报

发表于 2009-5-22 11:37:02 | 显示全部楼层
现在重新回归fcitx, 五笔还是fcitx的好用
回复 支持 反对

使用道具 举报

发表于 2009-5-22 15:31:54 | 显示全部楼层
Post by wangping;1989834
建议递交fcitx开发人员,集成进svn。


最新svn版本已经集成了
回复 支持 反对

使用道具 举报

发表于 2009-5-22 16:13:12 | 显示全部楼层
Post by ginkgo;1989597
svn r227 已经更新了。现在可以选择是否编译系统托盘图标。


用哪个参数,没看到--disable-tray ,
只看到有--enable-tray ,哪不用这个参数,只用.configure
安装后也有托盘显示,为啥尼?
回复 支持 反对

使用道具 举报

发表于 2009-5-22 23:02:52 | 显示全部楼层
  1. ./configure \
  2.   --prefix=/usr \
  3.   --enable-tray=no
复制代码
回复 支持 反对

使用道具 举报

发表于 2009-5-23 23:17:59 | 显示全部楼层
现在的一切正常啊。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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