OSDN Git Service

perf hists browser: Fix TAB/UNTAB use with multiple events
authorArnaldo Carvalho de Melo <acme@redhat.com>
Thu, 6 Oct 2011 13:46:45 +0000 (10:46 -0300)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Fri, 7 Oct 2011 20:01:04 +0000 (17:01 -0300)
When requesting multiple events, say:

  # perf top -e instructions -e cycles -e cache-misses

The first screen lets the user chose what to see first, then to switch
one can either use the left key to get back to the event menu or simply
use TAB to go the next and shift+TAB to go the prev.

When using TAB/UNTAB the call to perf_evlist__set_selected(event) was
missing, fix it.

Cc: David Ahern <dsahern@gmail.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Mike Galbraith <efault@gmx.de>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Stephane Eranian <eranian@google.com>
Link: http://lkml.kernel.org/n/tip-3xqqh3fwmt914gg43frey14y@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/util/ui/browsers/hists.c

index b790109..ef6ccef 100644 (file)
@@ -1107,12 +1107,14 @@ browse_hists:
                                pos = list_entry(evlist->entries.next, struct perf_evsel, node);
                        else
                                pos = list_entry(pos->node.next, struct perf_evsel, node);
+                       perf_evlist__set_selected(evlist, pos);
                        goto browse_hists;
                case NEWT_KEY_UNTAB:
                        if (pos->node.prev == &evlist->entries)
                                pos = list_entry(evlist->entries.prev, struct perf_evsel, node);
                        else
                                pos = list_entry(pos->node.prev, struct perf_evsel, node);
+                       perf_evlist__set_selected(evlist, pos);
                        goto browse_hists;
                case 'q':
                case CTRL('c'):