修复一个 fcitx 崩溃的 bug

系统字体配置、中文显示和输入法问题
头像
BigSnake.NET
帖子: 12522
注册时间: 2006-07-02 11:16
来自: 廣州
联系:

修复一个 fcitx 崩溃的 bug

#1

帖子 BigSnake.NET » 2009-03-05 14:19

http://code.google.com/p/fcitx/issues/detail?id=50

后来在 r182 做了个治标不治本的 fix。今天抽了点空总算解决了。
我不知道 ConnectIDGetPos 应不应该返回 NULL,这得问 yuking 了。

代码: 全选

diff -ur fcitx.orig/src/xim.c fcitx/src/xim.c
--- fcitx.orig/src/xim.c	2008-11-04 16:43:30.000000000 +0800
+++ fcitx/src/xim.c	2009-03-05 13:41:37.000000000 +0800
@@ -193,15 +193,16 @@
     }
 
     if ( !bTrackCursor || !ConnectIDGetTrackCursor (call_data->connect_id) ) {
+    position * pos = ConnectIDGetPos(connect_id);
 	if (bCenterInputWindow) {
 	    iInputWindowX = (DisplayWidth (dpy, iScreen) - iInputWindowWidth) / 2;
 	    if (iInputWindowX < 0)
 		iInputWindowX = 0;
 	}
 	else
-	    iInputWindowX = ConnectIDGetPos(connect_id)->x;
+	    iInputWindowX = pos ? pos->x : iInputWindowX;
 	    
-	XMoveWindow (dpy, inputWindow, iInputWindowX, ConnectIDGetPos(connect_id)->y);
+	XMoveWindow (dpy, inputWindow, iInputWindowX, pos ? pos->y : iInputWindowY);
     }
 
     return True;
@@ -261,15 +262,16 @@
     iHZInputed = 0;
 
     if ( !bTrackCursor || !ConnectIDGetTrackCursor (call_data->connect_id) ) {
+    position * pos = ConnectIDGetPos(connect_id);
 	if (bCenterInputWindow) {
 	    iInputWindowX = (DisplayWidth (dpy, iScreen) - iInputWindowWidth) / 2;
 	    if (iInputWindowX < 0)
 		iInputWindowX = 0;
 	}
 	else
-	    iInputWindowX = ConnectIDGetPos(connect_id)->x;
+	    iInputWindowX = pos ? pos->x : iInputWindowX;
 	    
-	XMoveWindow (dpy, inputWindow, iInputWindowX, ConnectIDGetPos(connect_id)->y);
+	XMoveWindow (dpy, inputWindow, iInputWindowX, pos ? pos->y : iInputWindowY);
     }
 
     return True;
^_^ ~~~
要理解递归,首先要理解递归。

地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。
头像
lerosua
论坛版主
帖子: 8455
注册时间: 2007-11-29 9:41
联系:

Re: 修复一个 fcitx 崩溃的 bug

#2

帖子 lerosua » 2009-03-05 15:14

fcitx在打字过快的情况下,字会跟不上从而出现字母。这个bug不知道何年何月能fixed
gj7548
帖子: 142
注册时间: 2006-10-19 15:22

Re: 修复一个 fcitx 崩溃的 bug

#3

帖子 gj7548 » 2009-03-05 16:53

fcitx在打字过快的情况下,字会跟不上从而出现字母。这个bug不知道何年何月能fixed
FCITX我一直用,感觉很不错。以前3.4版本没有,升级后有时有丢字的现象,出现字母,盼望早日解决,谢谢
头像
alpha.gu
帖子: 1456
注册时间: 2006-09-10 16:06
联系:

Re: 修复一个 fcitx 崩溃的 bug

#4

帖子 alpha.gu » 2009-03-09 12:58

gj7548 写了:
fcitx在打字过快的情况下,字会跟不上从而出现字母。这个bug不知道何年何月能fixed
FCITX我一直用,感觉很不错。以前3.4版本没有,升级后有时有丢字的现象,出现字母,盼望早日解决,谢谢
不知道是怎么回事,这个问题到现在一直有,在很多程序下都有这个问题,OpenOffice啊,Pidgin啊,Firefox啊,多了。
头像
alpha.gu
帖子: 1456
注册时间: 2006-09-10 16:06
联系:

Re: 修复一个 fcitx 崩溃的 bug

#5

帖子 alpha.gu » 2009-03-10 16:22

今天svn版本已经到188了,应该是把这个东西加进去了,看Changelog是这个意思。
还有,楼主,可不可以svn有更新的时候顺便打个包放到Download里面,反正升级一个版本,就把旧的删了,放新的,总共也就占一个文件包的空间,不会太大的。
现在Download区只有3.6-rc的一个包,用svn工具来下的话,在公司这样需要代理的环境下不是很方便,可是我对fcitx又喜欢追新,所以,每次我都要在家里下完了,然后到公司再编译……

svn出新的时候也顺便打个包嘛,这又不是什么麻烦的事,考虑一下吧:)
头像
hubert_star
论坛版主
帖子: 5373
注册时间: 2007-10-29 22:12
系统: OSX 10.9 + Ub 1304
来自: 江苏南京

Re: 修复一个 fcitx 崩溃的 bug

#6

帖子 hubert_star » 2009-03-10 16:27

只要能解决这个问题,我马上就跟svn,不至于现在一直窝在918版上了,一个小小的问题在新版里都没有了,但是918没掉字现象,而最新的188还是不行,用OOo还是掉字,不管是2.4还是3.0甚至是3.1的OOo,都这样。
佛经说,人有八苦: 生、老、病、死、求不得、怨憎、爱别离、五阴盛 故我苦!
圣经说,人有七罪: 饕餮、贪婪、懒惰、淫欲、傲慢、嫉妒和暴怒  故我有罪!

我这篇帖子里面没有任何攻击我们伟大的中华人民共和国政府和任劳任怨的人民公仆(和本论坛高素质的版主)的文字和含义;

特此声明!

有些事,我们明知道是错的,也要去坚持,因为不甘心;有些人,我们明知道是爱的,也要去放弃,因为没结局;有时候,我们明知道没路了,却还在前行,因为习惯了。

欢迎来我的新浪微博@me
头像
BigSnake.NET
帖子: 12522
注册时间: 2006-07-02 11:16
来自: 廣州
联系:

Re: 修复一个 fcitx 崩溃的 bug

#7

帖子 BigSnake.NET » 2009-03-10 17:38

183 ~ 187 yuking 貌似又有动作了

不过我看不懂 。。
^_^ ~~~
要理解递归,首先要理解递归。

地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。
头像
alpha.gu
帖子: 1456
注册时间: 2006-09-10 16:06
联系:

Re: 修复一个 fcitx 崩溃的 bug

#8

帖子 alpha.gu » 2009-03-10 17:41

看不看得懂是你的事啦,反正我是早看不懂代码了,但了,会编译使用就行了,所以,楼上的大哥,麻烦你把svn的也及时打包一份放到Download区呢,拜托拜托啦:)
头像
BigSnake.NET
帖子: 12522
注册时间: 2006-07-02 11:16
来自: 廣州
联系:

Re: 修复一个 fcitx 崩溃的 bug

#9

帖子 BigSnake.NET » 2009-03-10 17:48

alpha.gu 写了:看不看得懂是你的事啦,反正我是早看不懂代码了,但了,会编译使用就行了,所以,楼上的大哥,麻烦你把svn的也及时打包一份放到Download区呢,拜托拜托啦:)
其实我是路过的。。。
^_^ ~~~
要理解递归,首先要理解递归。

地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。
头像
alpha.gu
帖子: 1456
注册时间: 2006-09-10 16:06
联系:

Re: 修复一个 fcitx 崩溃的 bug

#10

帖子 alpha.gu » 2009-03-10 20:58

哪,那什么时候几位fcitx的Project Owner也来路过一下这个帖子就好了:)
wkt
帖子: 849
注册时间: 2006-09-07 22:51
联系:

Re: 修复一个 fcitx 崩溃的 bug

#11

帖子 wkt » 2009-03-10 21:06

alpha.gu 写了:看不看得懂是你的事啦,反正我是早看不懂代码了,但了,会编译使用就行了,所以,楼上的大哥,麻烦你把svn的也及时打包一份放到Download区呢,拜托拜托啦:)
不会自己svn一下啊?
头像
alpha.gu
帖子: 1456
注册时间: 2006-09-10 16:06
联系:

Re: 修复一个 fcitx 崩溃的 bug

#12

帖子 alpha.gu » 2009-03-11 8:37

楼上的,我不是说了嘛,svn工具很少有支持代理的,我在公司就很难下载下来,所以,经常要在家里下载了,然后再用U盘Copy到公司,可不可以麻烦你先看清楚了帖子再说啊!
或者你介绍一个可以用Proxy的svn客户端啊。
头像
karron
帖子: 6226
注册时间: 2005-06-11 14:03
来自: 不明真相的群众
联系:

Re: 修复一个 fcitx 崩溃的 bug

#13

帖子 karron » 2009-03-11 9:28

如果你环境变量里面设置了代理, 应该可以直接用的吧.
我的blog,关于技术,软件,linux,vim <---- 所有博客均被河蟹.
头像
sammysun
帖子: 4088
注册时间: 2007-12-08 23:33
来自: SCUT-guangzhou

Re: 修复一个 fcitx 崩溃的 bug

#14

帖子 sammysun » 2009-03-11 9:29

我的FCITX最近不能用了,一打字就崩溃,不知道是怎么回事?
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: 修复一个 fcitx 崩溃的 bug

#15

帖子 eexpress » 2009-03-11 9:33

觉得这输入法,还是没进入规范开发的领域。
● 鸣学
回复