|
(本来写在blog上的,但还是这里有讨论氛围:-)
半年前写过一篇tear-off menu,里面提到gnome2缺省没有打开这个功能,但可以通过一个gconf设置项打开。
但这并不适用与“开始”菜单,因为上述设置只影响gnome_menu_new()创建的菜单(由libgnomeui里面提供),而开始菜单gnome-panel是直接用gtk_menu_new()创建的。
对于这个功能的缺失我一直有点耿耿于怀。今天下载源代码看了看,发现要加这个并不难,效果图见下,尤其是Debian菜单现在用起来方便多了。
但我不明白的是,当初为什么要删除这个功能?
[img src=http://blog.linuxeden.com/resserver.php?blogId=110848&resource=gnome-panel-tearoff-menu-s.gif&mode=medium][/img]
[code:1]--- 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(tearoff);
+
panel_gconf_notify_add_while_alive ("/desktop/gnome/interface/menus_have_icons",
(GConfClientNotifyFunc) menus_have_icons_changed,
G_OBJECT (retval));
[/code:1] |
|