On lun, nov 03, 2003 at 12:51:36 +0100, Peter Kjellerstedt wrote: > This is mostly a "Me too" as the problem has already > been noted by Ulf Lamping in this mail: > http://www.ethereal.com/lists/ethereal-dev/200310/msg00532.html > So as it currently stands, it is not possible to build Ethereal > from CVS (nor would I suspect 0.9.16 to build) with GTK 2.0 > (which is the latest one provide by Redhat for RH7.3). > Anyone looking at a solution to this?
Can you try the following patch ? I don't have a gtk+ v2.0 system to check if it works. Olivier -- Doing gets it done.
Index: gtk/proto_draw.c =================================================================== RCS file: /usr/local/cvsroot/ethereal/gtk/proto_draw.c,v retrieving revision 1.63 diff -u -r1.63 proto_draw.c --- gtk/proto_draw.c 17 Oct 2003 17:20:32 -0000 1.63 +++ gtk/proto_draw.c 3 Nov 2003 19:47:47 -0000 @@ -61,6 +61,46 @@ #define E_BYTE_VIEW_END_KEY "byte_view_end" #define E_BYTE_VIEW_ENCODE_KEY "byte_view_encode" +/* gtk_tree_view_expand_to_path doesn't exist in gtk+ v2.0 so we must include it + * when building with this version (taken from gtk+ v2.2.4) */ +#if GTK_MAJOR_VERSION >= 2 && GTK_MINOR_VERSION == 0 +/** + * gtk_tree_view_expand_to_path: + * @tree_view: A #GtkTreeView. + * @path: path to a row. + * + * Expands the row at @path. This will also expand all parent rows of + * @path as necessary. + * + * Since: 2.2 + **/ +void +gtk_tree_view_expand_to_path (GtkTreeView *tree_view, + GtkTreePath *path) +{ + gint i, depth; + gint *indices; + GtkTreePath *tmp; + + g_return_if_fail (GTK_IS_TREE_VIEW (tree_view)); + g_return_if_fail (path != NULL); + + depth = gtk_tree_path_get_depth (path); + indices = gtk_tree_path_get_indices (path); + + tmp = gtk_tree_path_new (); + g_return_if_fail (tmp != NULL); + + for (i = 0; i < depth; i++) + { + gtk_tree_path_append_index (tmp, indices[i]); + gtk_tree_view_expand_row (tree_view, tmp, FALSE); + } + + gtk_tree_path_free (tmp); +} +#endif + static GtkWidget * add_byte_tab(GtkWidget *byte_nb, const char *name, tvbuff_t *tvb, proto_tree *tree, GtkWidget *tree_view); @@ -1389,6 +1429,7 @@ g_node_children_foreach((GNode*) protocol_tree, G_TRAVERSE_ALL, proto_tree_draw_node, &info); + #if GTK_MAJOR_VERSION < 2 gtk_clist_thaw(GTK_CLIST(tree_view)); #endif @@ -1409,6 +1450,7 @@ #else GtkTreeStore *store; GtkTreeIter iter; + GtkTreePath *path; #endif if (!fi->visible) @@ -1460,16 +1502,19 @@ #endif g_node_children_foreach(node, G_TRAVERSE_ALL, proto_tree_draw_node, &info); - } #if GTK_MAJOR_VERSION >= 2 - if (is_expanded == TRUE) - { - GtkTreePath *path; path = gtk_tree_model_get_path(GTK_TREE_MODEL(store), &iter); - gtk_tree_view_expand_to_path(info.tree_view, path); + if (is_expanded) +/* #if GTK_MINOR_VERSION >= 2 */ + gtk_tree_view_expand_to_path(info.tree_view, path); +/*#else + gtk_tree_view_expand_row(info.tree_view, path, FALSE); +#endif*/ + else + gtk_tree_view_collapse_row(info.tree_view, path); gtk_tree_path_free(path); - } #endif + } } /*