分页: 1 / 2

修复一个 fcitx 崩溃的 bug

发表于 : 2009-03-05 14:19
BigSnake.NET
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;

Re: 修复一个 fcitx 崩溃的 bug

发表于 : 2009-03-05 15:14
lerosua
fcitx在打字过快的情况下,字会跟不上从而出现字母。这个bug不知道何年何月能fixed

Re: 修复一个 fcitx 崩溃的 bug

发表于 : 2009-03-05 16:53
gj7548
fcitx在打字过快的情况下,字会跟不上从而出现字母。这个bug不知道何年何月能fixed
FCITX我一直用,感觉很不错。以前3.4版本没有,升级后有时有丢字的现象,出现字母,盼望早日解决,谢谢

Re: 修复一个 fcitx 崩溃的 bug

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

Re: 修复一个 fcitx 崩溃的 bug

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

svn出新的时候也顺便打个包嘛,这又不是什么麻烦的事,考虑一下吧:)

Re: 修复一个 fcitx 崩溃的 bug

发表于 : 2009-03-10 16:27
hubert_star
只要能解决这个问题,我马上就跟svn,不至于现在一直窝在918版上了,一个小小的问题在新版里都没有了,但是918没掉字现象,而最新的188还是不行,用OOo还是掉字,不管是2.4还是3.0甚至是3.1的OOo,都这样。

Re: 修复一个 fcitx 崩溃的 bug

发表于 : 2009-03-10 17:38
BigSnake.NET
183 ~ 187 yuking 貌似又有动作了

不过我看不懂 。。

Re: 修复一个 fcitx 崩溃的 bug

发表于 : 2009-03-10 17:41
alpha.gu
看不看得懂是你的事啦,反正我是早看不懂代码了,但了,会编译使用就行了,所以,楼上的大哥,麻烦你把svn的也及时打包一份放到Download区呢,拜托拜托啦:)

Re: 修复一个 fcitx 崩溃的 bug

发表于 : 2009-03-10 17:48
BigSnake.NET
alpha.gu 写了:看不看得懂是你的事啦,反正我是早看不懂代码了,但了,会编译使用就行了,所以,楼上的大哥,麻烦你把svn的也及时打包一份放到Download区呢,拜托拜托啦:)
其实我是路过的。。。

Re: 修复一个 fcitx 崩溃的 bug

发表于 : 2009-03-10 20:58
alpha.gu
哪,那什么时候几位fcitx的Project Owner也来路过一下这个帖子就好了:)

Re: 修复一个 fcitx 崩溃的 bug

发表于 : 2009-03-10 21:06
wkt
alpha.gu 写了:看不看得懂是你的事啦,反正我是早看不懂代码了,但了,会编译使用就行了,所以,楼上的大哥,麻烦你把svn的也及时打包一份放到Download区呢,拜托拜托啦:)
不会自己svn一下啊?

Re: 修复一个 fcitx 崩溃的 bug

发表于 : 2009-03-11 8:37
alpha.gu
楼上的,我不是说了嘛,svn工具很少有支持代理的,我在公司就很难下载下来,所以,经常要在家里下载了,然后再用U盘Copy到公司,可不可以麻烦你先看清楚了帖子再说啊!
或者你介绍一个可以用Proxy的svn客户端啊。

Re: 修复一个 fcitx 崩溃的 bug

发表于 : 2009-03-11 9:28
karron
如果你环境变量里面设置了代理, 应该可以直接用的吧.

Re: 修复一个 fcitx 崩溃的 bug

发表于 : 2009-03-11 9:29
sammysun
我的FCITX最近不能用了,一打字就崩溃,不知道是怎么回事?

Re: 修复一个 fcitx 崩溃的 bug

发表于 : 2009-03-11 9:33
eexpress
觉得这输入法,还是没进入规范开发的领域。