2011-03-02 08:40:25

by Arnaldo Carvalho de Melo

[permalink] [raw]
Subject: [tip:perf/core] perf top browser: Fix up exit keys

Commit-ID: c16bfe9ac389b13a37ff617a09682ecc0685960f
Gitweb: http://git.kernel.org/tip/c16bfe9ac389b13a37ff617a09682ecc0685960f
Author: Arnaldo Carvalho de Melo <[email protected]>
AuthorDate: Fri, 25 Feb 2011 09:30:29 -0300
Committer: Arnaldo Carvalho de Melo <[email protected]>
CommitDate: Fri, 25 Feb 2011 09:30:29 -0300

perf top browser: Fix up exit keys

The left key was exiting 'perf top --tui' when it really shouldn't, it
was too easy to leave the live annotation window and then press one too
many <- and get out of the tool altogether.

Do just like the report TUI does, ignore the left key for exit and also
ask the user when pressing ESC if that is really what is wanted.

Reported-by: Mike Galbraith <[email protected]>
Suggested-by: Ingo Molnar <[email protected]>
Cc: Frederic Weisbecker <[email protected]>
Cc: Ingo Molnar <[email protected]>
Cc: Mike Galbraith <[email protected]>
Cc: Paul Mackerras <[email protected]>
Cc: Peter Zijlstra <[email protected]>
Cc: Stephane Eranian <[email protected]>
Cc: Tom Zanussi <[email protected]>
LKML-Reference: <new-submission>
Signed-off-by: Arnaldo Carvalho de Melo <[email protected]>
---
tools/perf/util/ui/browsers/top.c | 7 +++++++
1 files changed, 7 insertions(+), 0 deletions(-)

diff --git a/tools/perf/util/ui/browsers/top.c b/tools/perf/util/ui/browsers/top.c
index 2f47224..e9381ec 100644
--- a/tools/perf/util/ui/browsers/top.c
+++ b/tools/perf/util/ui/browsers/top.c
@@ -10,6 +10,7 @@
#include "../../annotate.h"
#include "../helpline.h"
#include "../libslang.h"
+#include "../util.h"
#include "../../evlist.h"
#include "../../hist.h"
#include "../../sort.h"
@@ -174,6 +175,12 @@ static int perf_top_browser__run(struct perf_top_browser *browser)
if (browser->selection)
perf_top_browser__annotate(browser);
break;
+ case NEWT_KEY_LEFT:
+ continue;
+ case NEWT_KEY_ESCAPE:
+ if (!ui__dialog_yesno("Do you really want to exit?"))
+ continue;
+ /* Fall thru */
default:
goto out;
}