summaryrefslogtreecommitdiffstats
path: root/kernel/tools/perf/ui/tui
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/tools/perf/ui/tui')
-rw-r--r--kernel/tools/perf/ui/tui/progress.c19
-rw-r--r--kernel/tools/perf/ui/tui/setup.c10
-rw-r--r--kernel/tools/perf/ui/tui/util.c2
3 files changed, 24 insertions, 7 deletions
diff --git a/kernel/tools/perf/ui/tui/progress.c b/kernel/tools/perf/ui/tui/progress.c
index c61d14b10..c4b99008e 100644
--- a/kernel/tools/perf/ui/tui/progress.c
+++ b/kernel/tools/perf/ui/tui/progress.c
@@ -33,9 +33,26 @@ static void tui_progress__update(struct ui_progress *p)
pthread_mutex_unlock(&ui__lock);
}
+static void tui_progress__finish(void)
+{
+ int y;
+
+ if (use_browser <= 0)
+ return;
+
+ ui__refresh_dimensions(false);
+ pthread_mutex_lock(&ui__lock);
+ y = SLtt_Screen_Rows / 2 - 2;
+ SLsmg_set_color(0);
+ SLsmg_fill_region(y, 0, 3, SLtt_Screen_Cols, ' ');
+ SLsmg_refresh();
+ pthread_mutex_unlock(&ui__lock);
+}
+
static struct ui_progress_ops tui_progress__ops =
{
- .update = tui_progress__update,
+ .update = tui_progress__update,
+ .finish = tui_progress__finish,
};
void tui_progress__init(void)
diff --git a/kernel/tools/perf/ui/tui/setup.c b/kernel/tools/perf/ui/tui/setup.c
index b77e1d771..7dfeba0a9 100644
--- a/kernel/tools/perf/ui/tui/setup.c
+++ b/kernel/tools/perf/ui/tui/setup.c
@@ -129,7 +129,7 @@ int ui__init(void)
err = SLsmg_init_smg();
if (err < 0)
goto out;
- err = SLang_init_tty(0, 0, 0);
+ err = SLang_init_tty(-1, 0, 0);
if (err < 0)
goto out;
@@ -141,10 +141,6 @@ int ui__init(void)
SLkp_define_keysym((char *)"^(kB)", SL_KEY_UNTAB);
- ui_helpline__init();
- ui_browser__init();
- tui_progress__init();
-
signal(SIGSEGV, ui__signal_backtrace);
signal(SIGFPE, ui__signal_backtrace);
signal(SIGINT, ui__signal);
@@ -153,6 +149,10 @@ int ui__init(void)
perf_error__register(&perf_tui_eops);
+ ui_helpline__init();
+ ui_browser__init();
+ tui_progress__init();
+
hist_browser__init_hpp();
out:
return err;
diff --git a/kernel/tools/perf/ui/tui/util.c b/kernel/tools/perf/ui/tui/util.c
index bf890f72f..d96ad7c83 100644
--- a/kernel/tools/perf/ui/tui/util.c
+++ b/kernel/tools/perf/ui/tui/util.c
@@ -21,7 +21,7 @@ static void ui_browser__argv_write(struct ui_browser *browser,
ui_browser__set_color(browser, current_entry ? HE_COLORSET_SELECTED :
HE_COLORSET_NORMAL);
- slsmg_write_nstring(*arg, browser->width);
+ ui_browser__write_nstring(browser, *arg, browser->width);
}
static int popup_menu__run(struct ui_browser *menu)