Hello! I've tried "make gconfig" for Linux 2.5.67-ac1, and it looks quite bad in the Red Hat's BlueCurve theme. Highlighted cells in the tree are displayed in black on dark blue, so it's hard to see them.
I checked the sources and found that "Black" is hardcoded in gconf.c. I don't think it's a good idea to override the default color unless you have to (i.e. for disabled entries). Patch is attached. I'm not a GUI programmer, so please check is there is a simpler solution. Maybe it's possible to use the default foreground for insensitive widgets? Screenshots before and after are here: http://www.red-bean.com/~proski/gconf/ -- Regards, Pavel Roskin
--- scripts/kconfig/gconf.c +++ scripts/kconfig/gconf.c @@ -1184,7 +1184,7 @@ static gchar **fill_row(struct menu *men if (show_all && !menu_is_visible(menu)) row[COL_COLOR] = g_strdup("DarkGray"); else - row[COL_COLOR] = g_strdup("Black"); + row[COL_COLOR] = NULL; ptype = menu->prompt ? menu->prompt->type : P_UNKNOWN; switch (ptype) { @@ -1282,15 +1282,19 @@ static gchar **fill_row(struct menu *men static void set_node(GtkTreeIter * node, struct menu *menu, gchar ** row) { GdkColor color; + GdkColor *pcolor = NULL; gboolean success; GdkPixbuf *pix; pix = gdk_pixbuf_new_from_xpm_data((const char **) row[COL_PIXBUF]); - gdk_color_parse(row[COL_COLOR], &color); - gdk_colormap_alloc_colors(gdk_colormap_get_system(), &color, 1, - FALSE, FALSE, &success); + if (row[COL_COLOR]) { + gdk_color_parse(row[COL_COLOR], &color); + gdk_colormap_alloc_colors(gdk_colormap_get_system(), &color, 1, + FALSE, FALSE, &success); + pcolor = &color; + } gtk_tree_store_set(tree, node, COL_OPTION, row[COL_OPTION], @@ -1300,7 +1304,7 @@ static void set_node(GtkTreeIter * node, COL_YES, row[COL_YES], COL_VALUE, row[COL_VALUE], COL_MENU, (gpointer) menu, - COL_COLOR, &color, + COL_COLOR, pcolor, COL_EDIT, GPOINTER_TO_INT(row[COL_EDIT]), COL_PIXBUF, pix, COL_PIXVIS, GPOINTER_TO_INT(row[COL_PIXVIS]),