Ant-Veil

Caspar Blog

对 Awn-applet 在通知栏的一个小改动

| Comments

话说,用了 awn-extra-applet 之后,腰不疼了,腿不酸了,吃饭也香了,身体也有劲儿了……

不过有点不爽的就是,awn applets 里面的 notification area(用来代替 panel 上的 notification area 的东东)显示图标有问题。当某程序的 status icon 使用的是高像素图标(比如 128x128)时,整个 notification area 就被撑满了,高度也撑破了。

如下图:

于是好好的一个 awn 的美观就被破坏殆尽。

最近对代码有点犯怵,不过还是去看了看 notification area 的代码,发现只有三个文件。

在 applet.c 中,找到这么一段代码:

height = awn_applet_get_height (applet);
gtk_widget_set_size_request (GTK_WIDGET (applet), -1, height* 2 );

table = gtk_table_new (1, 1, FALSE);
app->table = table;
gtk_table_set_col_spacings (GTK_TABLE (table), 2);
gtk_table_set_row_spacings (GTK_TABLE (table), 1);

第一行说明 notification area 中显示的图标高度是由 applet 的实际高度决定的。applet 的实际高度可以很高,比如 128 的那个更新图标之类的。

于是修改起来也很简单,把第一行注释掉,再在开头 height 声明时初始化为 24 即可。

声明部分:

static GQuark new_quark = 0;
static GQuark del_quark = 0;
static gint   n_rows    = 0;
static int   height    = 24;  //原来这里是 0
static int   icon_size = 24;

改完后重新编译,重新使用 awn 后,图标果然正常了。

Comments