2005年11月22日星期二

Tear-off menu有什么不好?

半年前写过一篇tear-off menu,里面提到gnome2缺省没有打开这个功能,但可以通过一个gconf设置项打开。

但这并不适用与“开始”菜单,因为上述设置只影响gnome_menu_new()创建的菜单(由libgnomeui里面提供),而开始菜单gnome-panel是直接用gtk_menu_new()创建的。

对于这个功能的缺失我一直有点耿耿于怀。 今天下载源代码看了看,发现要加这个并不难,效果图见右,尤其是Debian菜单现在用起来方便多了。

但我不明白的是,当初为什么要删除这个功能?

--- gnome-panel/menu.c.orig     2005-06-07 03:08:56.000000000 +0800
+++ gnome-panel/menu.c 2005-11-23 00:07:22.000000000 +0800
@@ -257,6 +257,7 @@ GtkWidget *
panel_create_menu (void)
{
GtkWidget *retval;
+ GtkWidget *tearoff;
static gboolean registered_icon_theme_changer = FALSE;

if (!registered_icon_theme_changer) {
@@ -267,7 +268,11 @@ panel_create_menu (void)
}

retval = gtk_menu_new ();

+ tearoff = gtk_tearoff_menu_item_new();
+ gtk_widget_show(tearoff);
+ gtk_menu_prepend(retval, tearoff);
+
panel_gconf_notify_add_while_alive ("/desktop/gnome/interface/menus_have_icons",
(GConfClientNotifyFunc) menus_have_icons_changed,
G_OBJECT (retval));

1 条评论:

Unknown 说...

加一行,启动gnome-panel时检查一下设置吧,免得有的想关掉这个功能
if (gconf_client_get_bool (
panel_gconf_get_client(),
"/desktop/gnome/interface/menus_have_tearoff",
NULL)) {
......
}