perf hists browser: Fix TAB/UNTAB use with multiple events

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.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
parent 724c9c9f
...@@ -1107,12 +1107,14 @@ static int perf_evsel_menu__run(struct perf_evsel_menu *menu, ...@@ -1107,12 +1107,14 @@ static int perf_evsel_menu__run(struct perf_evsel_menu *menu,
pos = list_entry(evlist->entries.next, struct perf_evsel, node); pos = list_entry(evlist->entries.next, struct perf_evsel, node);
else else
pos = list_entry(pos->node.next, struct perf_evsel, node); pos = list_entry(pos->node.next, struct perf_evsel, node);
perf_evlist__set_selected(evlist, pos);
goto browse_hists; goto browse_hists;
case NEWT_KEY_UNTAB: case NEWT_KEY_UNTAB:
if (pos->node.prev == &evlist->entries) if (pos->node.prev == &evlist->entries)
pos = list_entry(evlist->entries.prev, struct perf_evsel, node); pos = list_entry(evlist->entries.prev, struct perf_evsel, node);
else else
pos = list_entry(pos->node.prev, struct perf_evsel, node); pos = list_entry(pos->node.prev, struct perf_evsel, node);
perf_evlist__set_selected(evlist, pos);
goto browse_hists; goto browse_hists;
case 'q': case 'q':
case CTRL('c'): case CTRL('c'):
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment