通知区域图标不透明的问题
这是一个很老很的问题了,自从 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" 部分,已经是透明的了。 再贴个图。
unbuntu 下,分别给 scim, stardict 打了补丁。 GCN左边那个分隔条applet不是太舒服,也缝缝补补? 历史遗留问题,这么多努力,只换来一个假透明
X的协议里如果支持透明度的话,那就好多了 好看多了不 :-)这个补丁会不会被收录? ubuntu 里收录了:)
最理想的还是高效的还是依靠 composite 来实现透明!
页:
[1]