yangh 发表于 2006-5-10 22:04:50

通知区域图标不透明的问题

这是一个很老很的问题了,自从 gnome-panel 支持透明以来,我就希望通知区域能够透明,但是这个问题直到现在还没有完美解决。

gnome-panel 支持透明以后,panel 上的小程序通过获取父窗口的图像 gdk_pixbuf_get_from_drawable(...),并用它做为自己的背景,以此实现假透明。

通知区域里的图标则要特殊些,它不是直接被包含在通知区域里的,而是通过 gtk_socket 连接起来的。

要实现透明,需要对 gnome-panel 打补丁,还需要对各程序中的 eggtrayicon. 打补丁,因为这两个文件都是直接从 libegg 中自制到自己代码中的。


单个图标需要解决的:
http://bugzilla.gnome.org/show_bug.cgi?id=150726

patch: http://bugzilla.gnome.org/attachment.cgi?id=59957&action=view

通知区域本身需要解决的:
http://bugzilla.gnome.org/show_bug.cgi?id=100600

patch: http://bugzilla.gnome.org/attachment.cgi?id=60779&action=view
Ubuntu dapper 中的 gnome-panel 2.14.1 已经收录了这个 patch.

参考地址:
gnome-panel 的通知区域: http://cvs.gnome.org/viewcvs/gnome-panel/applets/notification_area/

通知区域基础 libegg: http://cvs.gnome.org/viewcvs/libegg/libegg/tray/ (所有要想有通知区域图标的程序都得从这里取得 eggtrayicon. 放到自己的代码中,并调用其中的 egg_tray_icon_new(...),在 gtk+-2.10 中将收入这部分代码,相应通知区域 eggtraymanager 部分则会直接放到 gnome-panel 中)

把你的程序加入到系统托盘里: http://www.gnome-cn.org/documents/tutorial/system-tray-icon-application/

----

注意看下图中的蓝色 "CN" 部分,已经是透明的了。

yangh 发表于 2006-5-11 14:19:01

再贴个图。

unbuntu 下,分别给 scim, stardict 打了补丁。

jcome 发表于 2006-5-11 15:55:55

GCN左边那个分隔条applet不是太舒服,也缝缝补补?

cobranail 发表于 2006-5-14 03:00:45

历史遗留问题,这么多努力,只换来一个假透明
X的协议里如果支持透明度的话,那就好多了

Linux_Lyb 发表于 2006-5-14 19:01:21

好看多了不 :-)这个补丁会不会被收录?

yangh 发表于 2006-5-14 23:04:10

ubuntu 里收录了:)

最理想的还是高效的还是依靠 composite 来实现透明!
页: [1]
查看完整版本: 通知区域图标不透明的问题