当昨天终于把cairo升级到1.8.4后,发现firefox的输入框以及gnome-menu的空白依然是相当巨大,无语了,觉得要行动一下,不然估计下个版本的cairo出来时这些问题依然存在。于是上freedesktop.org file了cairo一个bug,描述问题。然后连上cairo在freenode.org上的IRC,反映情况。不久,cairo的开发人员ickle回应了。在他的指导下测试了从cairo-1.9.x(git版本)到1.6.4的各个版本,惊讶地发现都有这个问题,此时ickle说,应该不是cairo的问题,因为这个现象据说是在1.6.4之后出现的,建议我检查一下是不是字体或是pango的问题。
在排除了字体问题后,最大疑点指向了pango,于是把pango降到1.20.5后,问题消失了。先大汗了一下,赶把file的那个cairo bug给关了,说明了情况。转到gnome上file pango的bug,并贴上截图和问题重现的描述,然后上床睡觉。pango的开发人员回应也很快,我早上起来的时候,就回复了,说是firefox或是google的问题。于是,我赶紧把gnome-menu的对比截图贴上。这下,pango的develper明白问题所在了,直接在svn中fix了,并让了测试一下。感动之余,迅速把测试后的截图贴上,长舒了一口气,firefox和gnome-menu终于正常显示了。
首先要感谢cairo的开发人员ickle的耐心指导,不然我肯定还以为是cairo的问题。其次要感谢pango的开发人员Behdad Esfahbod的快速反应,使问题迅速化解。总结就是,有bug就要抓紧提,不能等着别人提。如果昨天懒了,估计这个问题还会继续存在。
下面这个是从pango的svn中提出的patch文件,把它应用在pango-1.22.3上就能打上上述的补丁了。之后自己编译吧。一般步骤就是 sh autogen.sh --prefix=/usr 再加上你自己的参数,然后make 最后 make install。当然我建议你等下个版本的pango,这样系统里的包都是用包管理器安装的会比较干净。
pango-r2742_r2748.patch如果你用的是gentoo的话,那就添加gentoo china overlay,我会把pango-1.22.3-r1放进去的 :)
你这怎么解决的?
“直接在git中fix了”,这是什么意思?
我不了解pango,所以能否贴出详细步骤呢?
感谢你!
我也一直以为这个问题是Cairo引起的,没想到是更高一级别的Pango。呵呵。
大概是Pango在算文本框里的字体时,多算了一些吧。
学习你最后一句话了:有bug就要抓紧提,不能等着别人提。
我编译安装了最新的pango仍然无法消除过长的现象。
不会是让我把pango将到1.20.5吧?
你需要编译安装svn版的pango,而不是1.22.3
从这里checkout:
http://svn.gnome.org/svn/pango/trunk
我用的是gentoo,在gentoo下,按1.22.3的ebuild改写成9999的ebuild,直接就能编译安装了。所以具体手动的步骤说不清楚啊 :)
唉,我早就想给cairo提,没找到地方,只看到一个 maillist。。。问了问有人说提了,那就等着吧。而且发现 ubuntu 里面也有这个问题,应该会有不少人提吧。
我也去试试看 9999 去。感谢。
不用试9999的,我把patch加到gentoo china overlay中了,直接用1.22.3-r1就OK了。
学习了,我还是等补丁吧,到目前为止ubuntu还没有升级。
pango svn + cairo git + firefox 3.1b3 + ubuntu 8.10 google输入栏还是n长
截图请看如下地址:
http://forum.ubuntu.org.cn/viewtopic.php?f=80&t=161953&start=15
抱歉,我没有firefox-3.1b3可以帮你试 :)
在pango-1.22.4, cairo-1.8.6, firefox-3.0.5下是正常的。
为什么fedora和unbuntu的到现在还没有更新这个问题呢?其它版本的Linux未测试,因为没有安装。
这个就不知道了,只要发行版中pango版本够高应该就OK了,等等吧 :)