perf newt: Add 'Q', 'q' and Ctrl+C as ways to exit from forms
authorArnaldo Carvalho de Melo <acme@redhat.com>
Fri, 12 Mar 2010 13:48:12 +0000 (10:48 -0300)
committerIngo Molnar <mingo@elte.hu>
Fri, 12 Mar 2010 19:31:52 +0000 (20:31 +0100)
These are keys people expect when pressed to exit the current
widget, so have associate all of them to this semantic.

Suggested-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Frédéric Weisbecker <fweisbec@gmail.com>
Cc: Mike Galbraith <efault@gmx.de>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Paul Mackerras <paulus@samba.org>
LKML-Reference: <1268401692-9361-1-git-send-email-acme@infradead.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
tools/perf/util/newt.c

index 3d3a936acb67897a0173d8cf8886a2470240868a..2a4308a29ba8bba087c0d5a610b557feb9c8df83 100644 (file)
@@ -4,6 +4,7 @@
 
 #include <stdlib.h>
 #include <newt.h>
+#include <sys/ttydefaults.h>
 
 #include "cache.h"
 #include "hist.h"
 #include "sort.h"
 #include "symbol.h"
 
+static void newt_form__set_exit_keys(newtComponent self)
+{
+       newtFormAddHotKey(self, NEWT_KEY_ESCAPE);
+       newtFormAddHotKey(self, 'Q');
+       newtFormAddHotKey(self, 'q');
+       newtFormAddHotKey(self, CTRL('c'));
+}
+
+static newtComponent newt_form__new(void)
+{
+       newtComponent self = newtForm(NULL, NULL, 0);
+       if (self)
+               newt_form__set_exit_keys(self);
+       return self;
+}
+
 static size_t hist_entry__append_browser(struct hist_entry *self,
                                         newtComponent listbox, u64 total)
 {
@@ -77,8 +94,7 @@ static void hist_entry__annotate_browser(struct hist_entry *self)
        newtListboxSetWidth(listbox, max_line_len);
 
        newtCenteredWindow(max_line_len + 2, ws.ws_row - 5, self->sym->name);
-       form = newtForm(NULL, NULL, 0);
-       newtFormAddHotKey(form, NEWT_KEY_ESCAPE);
+       form = newt_form__new();
        newtFormAddComponents(form, listbox, NULL);
 
        newtFormRun(form, &es);
@@ -108,8 +124,7 @@ void perf_session__browse_hists(struct rb_root *hists, u64 session_total,
 
        get_term_dimensions(&ws);
 
-       form = newtForm(NULL, NULL, 0);
-       newtFormAddHotKey(form, NEWT_KEY_ESCAPE);
+       form = newt_form__new();
 
        listbox = newtListbox(1, 1, ws.ws_row - 2, (NEWT_FLAG_SCROLL |
                                                    NEWT_FLAG_BORDER |