QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

楼主: KanKer

打过下划线补丁的kde效果图

[复制链接]
发表于 2004-12-16 21:06:15 | 显示全部楼层
这个下划线补丁,好像不能用在 kde-3.3.2 上哇。
回复

使用道具 举报

发表于 2004-12-16 21:39:41 | 显示全部楼层
[quote:a94a64489b="KDE"][quote:a94a64489b="cjacker"]下划线的主要问题在于KHTML中。

不要改Qt。

如果直接改Qt的QfontEngine,在一些文本编辑器里,下划线就看不到了。

KHTML可以直接进行修改。[/quote]
应该再将下划线下移两个像素,否则英文尾巴还是看不清楚![/quote]
不对, 英文应该是 baseline + 1, 中文是 descent。不要乱改。
回复

使用道具 举报

发表于 2004-12-16 22:05:36 | 显示全部楼层
对否?

[code:1]--- kdelibs-3.3.2/khtml/rendering/font.cpp 2004-11-28 12:30:53.000000000 -0500
+++ kdelibs-3.3.2-new/khtml/rendering/font.cpp 2004-12-16 21:23:36.052694664 -0500
@@ -403,8 +403,8 @@
     const int thickness = fm.height() > 20 ? fm.lineWidth() : 1;
     const QBrush brush = pt->pen().color();
     if (deco & UNDERLINE) {
-        int underlineOffset = ( fm.height() + baseline ) / 2;
-        if (underlineOffset <= baseline) underlineOffset = baseline+1;
+        int underlineOffset = ( fm.height() + baseline ) / 2+1;
+        if (underlineOffset <= baseline) underlineOffset = baseline+2;

         pt->fillRect(_tx, _ty + underlineOffset, width + 1, thickness, brush );
     }
--- kdelibs-3.3.2/khtml/rendering/render_line.cpp 2004-11-28 12:30:54.000000000 -0500
+++ kdelibs-3.3.2-new/khtml/rendering/render_line.cpp 2004-12-16 21:31:17.469548640 -0500
@@ -598,8 +598,8 @@
         if (!parent())
             object()->getTextDecorationColors(deco, underline, overline, linethrough);
         if (deco & UNDERLINE) {
-            int underlineOffset = ( fm.height() + m_baseline ) / 2;
-            if (underlineOffset <= m_baseline) underlineOffset = m_baseline+1;
+            int underlineOffset = ( fm.height() + m_baseline ) / 2+1;
+            if (underlineOffset <= m_baseline) underlineOffset = m_baseline+2;

             pI.p->fillRect(_tx, _ty + underlineOffset, w, thickness, underline );
         }
[/code:1]
回复

使用道具 举报

发表于 2004-12-17 09:05:00 | 显示全部楼层
我放几个个人的补丁出来吧:

1,在CSS Style中,部分网站使用=来赋值,比如www.it168.com。
一开始菜单都是展开的,因为用来等号,而不是冒号。

这个ugly的补丁,是解决这一类问题的:
http://www.magiclinux.org/people/cjacker/006-khtml-fix-css-property-use-equal.patch


2,我们都知道konqueror去浮动的窗口,比如sina, sohu, qq.com主页上随着你的滚动而飘动的窗口支持的不好,你能拖到那里,他就能浮动到哪里,你永远也点不到,而且页面拉的很长。

因为document.body.clientWidth和document.body.offsetHeight这两个属性错了。
http://www.magiclinux.org/people/cjacker/007-khtml-fix-DOM-IE-support.patch

这个补丁是解决这个问题的。
以后的浮动窗口就可以随你拖动,永远不会到屏幕外。

测试页面,电脑报首页,sina, sohu, tom等。

3,layer的属性是不被mozilla和IE支持的,只有netscape 4才支持正确的layer属性,所以,在一般情况下,作网页的胡乱设置layer属性,也没有问题,因为根本没有反应。
但是,konqueror做了支持,而且将它作为骄傲。
http://www.magiclinux.org/people/cjacker/011-khtml-remove-layer-parse.patch

这个补丁remove了layer属性的解析,按照市场需求来看,这么作是必要的,koqnueror开发者实在没有必要,用几个月时间实现这个支持。

测试页面,www.phoenixtv.com首页的视频窗口。



回复

使用道具 举报

发表于 2004-12-17 14:49:22 | 显示全部楼层
好东西哇,偷着乐
回复

使用道具 举报

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

本版积分规则

GMT+8, 2024-11-26 22:53 , Processed in 0.080903 second(s), 13 queries .

© 2021 Powered by Discuz! X3.5.

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