perf gtk/hists: Add a double-click handler for callchains
authorNamhyung Kim <namhyung.kim@lge.com>
Tue, 4 Jun 2013 09:22:16 +0000 (18:22 +0900)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Fri, 12 Jul 2013 16:52:43 +0000 (13:52 -0300)
If callchain is displayed, add "row-activated" signal handler for
handling double-click or pressing ENTER key action.

Reviewed-by: Pekka Enberg <penberg@kernel.org>
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
Cc: David Ahern <dsahern@gmail.com>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Pekka Enberg <penberg@kernel.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/r/1370337737-30812-6-git-send-email-namhyung@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/ui/gtk/hists.c

index b4a0dd2..3a5d013 100644 (file)
@@ -187,6 +187,18 @@ static void perf_gtk__add_callchain(struct rb_root *root, GtkTreeStore *store,
        }
 }
 
+static void on_row_activated(GtkTreeView *view, GtkTreePath *path,
+                            GtkTreeViewColumn *col __maybe_unused,
+                            gpointer user_data __maybe_unused)
+{
+       bool expanded = gtk_tree_view_row_expanded(view, path);
+
+       if (expanded)
+               gtk_tree_view_collapse_row(view, path);
+       else
+               gtk_tree_view_expand_row(view, path, FALSE);
+}
+
 static void perf_gtk__show_hists(GtkWidget *window, struct hists *hists,
                                 float min_pcnt)
 {
@@ -314,6 +326,8 @@ static void perf_gtk__show_hists(GtkWidget *window, struct hists *hists,
                }
        }
 
+       g_signal_connect(view, "row-activated",
+                        G_CALLBACK(on_row_activated), NULL);
        gtk_container_add(GTK_CONTAINER(window), view);
 }