diff options
Diffstat (limited to 'gtk')
-rw-r--r-- | gtk/proto_draw.c | 27 |
1 files changed, 20 insertions, 7 deletions
diff --git a/gtk/proto_draw.c b/gtk/proto_draw.c index 5c153d6b88..69ff8e650c 100644 --- a/gtk/proto_draw.c +++ b/gtk/proto_draw.c @@ -1,7 +1,7 @@ /* proto_draw.c * Routines for GTK+ packet display * - * $Id: proto_draw.c,v 1.35 2001/06/05 07:38:37 guy Exp $ + * $Id: proto_draw.c,v 1.36 2001/07/09 22:54:15 guy Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs <gerald@ethereal.com> @@ -37,6 +37,7 @@ #include <stdarg.h> #include <gtk/gtk.h> +#include <gdk/gdkkeysyms.h> #ifdef NEED_SNPRINTF_H # include "snprintf.h" @@ -184,6 +185,16 @@ collapse_tree(GtkCTree *ctree, GtkCTreeNode *node, gpointer user_data) *val = FALSE; } +static void +toggle_tree(GtkCTree *ctree, GdkEventKey *event, gpointer user_data) +{ + GtkCTreeNode *node; + + if (event->keyval != GDK_Return) + return; + gtk_ctree_toggle_expansion(ctree, GTK_CTREE_NODE(ctree->clist.selection->data)); +} + /* Which byte the offset is referring to. Associates * whitespace with the preceding digits. */ static int @@ -822,6 +833,12 @@ create_tree_view(gint tv_size, e_prefs *prefs, GtkWidget *pane, gtk_widget_show(tv_scrollw); tree_view = gtk_ctree_new(1, 0); + gtk_signal_connect( GTK_OBJECT(tree_view), "key-press-event", + (GtkSignalFunc) toggle_tree, NULL ); + gtk_signal_connect( GTK_OBJECT(tree_view), "tree-expand", + (GtkSignalFunc) expand_tree, NULL ); + gtk_signal_connect( GTK_OBJECT(tree_view), "tree-collapse", + (GtkSignalFunc) collapse_tree, NULL ); /* I need this next line to make the widget work correctly with hidden * column titles and GTK_SELECTION_BROWSE */ gtk_clist_set_column_auto_resize( GTK_CLIST(tree_view), 0, TRUE ); @@ -874,11 +891,6 @@ proto_tree_draw(proto_tree *protocol_tree, GtkWidget *tree_view) g_node_children_foreach((GNode*) protocol_tree, G_TRAVERSE_ALL, proto_tree_draw_node, &info); - gtk_signal_connect( GTK_OBJECT(info.ctree), "tree-expand", - (GtkSignalFunc) expand_tree, NULL ); - gtk_signal_connect( GTK_OBJECT(info.ctree), "tree-collapse", - (GtkSignalFunc) collapse_tree, NULL ); - gtk_clist_thaw ( GTK_CLIST(tree_view) ); } @@ -898,7 +910,8 @@ proto_tree_draw_node(GNode *node, gpointer data) if (!fi->visible) return; i= find_notebook_page( byte_nb_ptr, fi->ds_name); - if ( i < 0) return; /* no notebook pages ?? */ + if ( i < 0) + return; /* no notebook pages ?? */ set_notebook_page( byte_nb_ptr, i); /* was a free format label produced? */ |