diff options
Diffstat (limited to 'tools/perf/ui/browser.c')
-rw-r--r-- | tools/perf/ui/browser.c | 39 |
1 files changed, 21 insertions, 18 deletions
diff --git a/tools/perf/ui/browser.c b/tools/perf/ui/browser.c index 3ccf6e14f89b..6680fa5cb9dd 100644 --- a/tools/perf/ui/browser.c +++ b/tools/perf/ui/browser.c | |||
@@ -150,7 +150,7 @@ unsigned int ui_browser__rb_tree_refresh(struct ui_browser *browser) | |||
150 | while (nd != NULL) { | 150 | while (nd != NULL) { |
151 | ui_browser__gotorc(browser, row, 0); | 151 | ui_browser__gotorc(browser, row, 0); |
152 | browser->write(browser, nd, row); | 152 | browser->write(browser, nd, row); |
153 | if (++row == browser->height) | 153 | if (++row == browser->rows) |
154 | break; | 154 | break; |
155 | nd = rb_next(nd); | 155 | nd = rb_next(nd); |
156 | } | 156 | } |
@@ -166,7 +166,7 @@ bool ui_browser__is_current_entry(struct ui_browser *browser, unsigned row) | |||
166 | void ui_browser__refresh_dimensions(struct ui_browser *browser) | 166 | void ui_browser__refresh_dimensions(struct ui_browser *browser) |
167 | { | 167 | { |
168 | browser->width = SLtt_Screen_Cols - 1; | 168 | browser->width = SLtt_Screen_Cols - 1; |
169 | browser->height = SLtt_Screen_Rows - 2; | 169 | browser->height = browser->rows = SLtt_Screen_Rows - 2; |
170 | browser->y = 1; | 170 | browser->y = 1; |
171 | browser->x = 0; | 171 | browser->x = 0; |
172 | } | 172 | } |
@@ -250,7 +250,10 @@ int ui_browser__show(struct ui_browser *browser, const char *title, | |||
250 | int err; | 250 | int err; |
251 | va_list ap; | 251 | va_list ap; |
252 | 252 | ||
253 | ui_browser__refresh_dimensions(browser); | 253 | if (browser->refresh_dimensions == NULL) |
254 | browser->refresh_dimensions = ui_browser__refresh_dimensions; | ||
255 | |||
256 | browser->refresh_dimensions(browser); | ||
254 | 257 | ||
255 | pthread_mutex_lock(&ui__lock); | 258 | pthread_mutex_lock(&ui__lock); |
256 | __ui_browser__show_title(browser, title); | 259 | __ui_browser__show_title(browser, title); |
@@ -279,7 +282,7 @@ static void ui_browser__scrollbar_set(struct ui_browser *browser) | |||
279 | { | 282 | { |
280 | int height = browser->height, h = 0, pct = 0, | 283 | int height = browser->height, h = 0, pct = 0, |
281 | col = browser->width, | 284 | col = browser->width, |
282 | row = browser->y - 1; | 285 | row = 0; |
283 | 286 | ||
284 | if (browser->nr_entries > 1) { | 287 | if (browser->nr_entries > 1) { |
285 | pct = ((browser->index * (browser->height - 1)) / | 288 | pct = ((browser->index * (browser->height - 1)) / |
@@ -367,7 +370,7 @@ int ui_browser__run(struct ui_browser *browser, int delay_secs) | |||
367 | 370 | ||
368 | if (key == K_RESIZE) { | 371 | if (key == K_RESIZE) { |
369 | ui__refresh_dimensions(false); | 372 | ui__refresh_dimensions(false); |
370 | ui_browser__refresh_dimensions(browser); | 373 | browser->refresh_dimensions(browser); |
371 | __ui_browser__show_title(browser, browser->title); | 374 | __ui_browser__show_title(browser, browser->title); |
372 | ui_helpline__puts(browser->helpline); | 375 | ui_helpline__puts(browser->helpline); |
373 | continue; | 376 | continue; |
@@ -389,7 +392,7 @@ int ui_browser__run(struct ui_browser *browser, int delay_secs) | |||
389 | if (browser->index == browser->nr_entries - 1) | 392 | if (browser->index == browser->nr_entries - 1) |
390 | break; | 393 | break; |
391 | ++browser->index; | 394 | ++browser->index; |
392 | if (browser->index == browser->top_idx + browser->height) { | 395 | if (browser->index == browser->top_idx + browser->rows) { |
393 | ++browser->top_idx; | 396 | ++browser->top_idx; |
394 | browser->seek(browser, +1, SEEK_CUR); | 397 | browser->seek(browser, +1, SEEK_CUR); |
395 | } | 398 | } |
@@ -405,10 +408,10 @@ int ui_browser__run(struct ui_browser *browser, int delay_secs) | |||
405 | break; | 408 | break; |
406 | case K_PGDN: | 409 | case K_PGDN: |
407 | case ' ': | 410 | case ' ': |
408 | if (browser->top_idx + browser->height > browser->nr_entries - 1) | 411 | if (browser->top_idx + browser->rows > browser->nr_entries - 1) |
409 | break; | 412 | break; |
410 | 413 | ||
411 | offset = browser->height; | 414 | offset = browser->rows; |
412 | if (browser->index + offset > browser->nr_entries - 1) | 415 | if (browser->index + offset > browser->nr_entries - 1) |
413 | offset = browser->nr_entries - 1 - browser->index; | 416 | offset = browser->nr_entries - 1 - browser->index; |
414 | browser->index += offset; | 417 | browser->index += offset; |
@@ -419,10 +422,10 @@ int ui_browser__run(struct ui_browser *browser, int delay_secs) | |||
419 | if (browser->top_idx == 0) | 422 | if (browser->top_idx == 0) |
420 | break; | 423 | break; |
421 | 424 | ||
422 | if (browser->top_idx < browser->height) | 425 | if (browser->top_idx < browser->rows) |
423 | offset = browser->top_idx; | 426 | offset = browser->top_idx; |
424 | else | 427 | else |
425 | offset = browser->height; | 428 | offset = browser->rows; |
426 | 429 | ||
427 | browser->index -= offset; | 430 | browser->index -= offset; |
428 | browser->top_idx -= offset; | 431 | browser->top_idx -= offset; |
@@ -432,7 +435,7 @@ int ui_browser__run(struct ui_browser *browser, int delay_secs) | |||
432 | ui_browser__reset_index(browser); | 435 | ui_browser__reset_index(browser); |
433 | break; | 436 | break; |
434 | case K_END: | 437 | case K_END: |
435 | offset = browser->height - 1; | 438 | offset = browser->rows - 1; |
436 | if (offset >= browser->nr_entries) | 439 | if (offset >= browser->nr_entries) |
437 | offset = browser->nr_entries - 1; | 440 | offset = browser->nr_entries - 1; |
438 | 441 | ||
@@ -462,7 +465,7 @@ unsigned int ui_browser__list_head_refresh(struct ui_browser *browser) | |||
462 | if (!browser->filter || !browser->filter(browser, pos)) { | 465 | if (!browser->filter || !browser->filter(browser, pos)) { |
463 | ui_browser__gotorc(browser, row, 0); | 466 | ui_browser__gotorc(browser, row, 0); |
464 | browser->write(browser, pos, row); | 467 | browser->write(browser, pos, row); |
465 | if (++row == browser->height) | 468 | if (++row == browser->rows) |
466 | break; | 469 | break; |
467 | } | 470 | } |
468 | } | 471 | } |
@@ -587,7 +590,7 @@ unsigned int ui_browser__argv_refresh(struct ui_browser *browser) | |||
587 | if (!browser->filter || !browser->filter(browser, *pos)) { | 590 | if (!browser->filter || !browser->filter(browser, *pos)) { |
588 | ui_browser__gotorc(browser, row, 0); | 591 | ui_browser__gotorc(browser, row, 0); |
589 | browser->write(browser, pos, row); | 592 | browser->write(browser, pos, row); |
590 | if (++row == browser->height) | 593 | if (++row == browser->rows) |
591 | break; | 594 | break; |
592 | } | 595 | } |
593 | 596 | ||
@@ -623,7 +626,7 @@ static void __ui_browser__line_arrow_up(struct ui_browser *browser, | |||
623 | 626 | ||
624 | SLsmg_set_char_set(1); | 627 | SLsmg_set_char_set(1); |
625 | 628 | ||
626 | if (start < browser->top_idx + browser->height) { | 629 | if (start < browser->top_idx + browser->rows) { |
627 | row = start - browser->top_idx; | 630 | row = start - browser->top_idx; |
628 | ui_browser__gotorc(browser, row, column); | 631 | ui_browser__gotorc(browser, row, column); |
629 | SLsmg_write_char(SLSMG_LLCORN_CHAR); | 632 | SLsmg_write_char(SLSMG_LLCORN_CHAR); |
@@ -633,7 +636,7 @@ static void __ui_browser__line_arrow_up(struct ui_browser *browser, | |||
633 | if (row-- == 0) | 636 | if (row-- == 0) |
634 | goto out; | 637 | goto out; |
635 | } else | 638 | } else |
636 | row = browser->height - 1; | 639 | row = browser->rows - 1; |
637 | 640 | ||
638 | if (end > browser->top_idx) | 641 | if (end > browser->top_idx) |
639 | end_row = end - browser->top_idx; | 642 | end_row = end - browser->top_idx; |
@@ -675,8 +678,8 @@ static void __ui_browser__line_arrow_down(struct ui_browser *browser, | |||
675 | } else | 678 | } else |
676 | row = 0; | 679 | row = 0; |
677 | 680 | ||
678 | if (end >= browser->top_idx + browser->height) | 681 | if (end >= browser->top_idx + browser->rows) |
679 | end_row = browser->height - 1; | 682 | end_row = browser->rows - 1; |
680 | else | 683 | else |
681 | end_row = end - browser->top_idx; | 684 | end_row = end - browser->top_idx; |
682 | 685 | ||
@@ -684,7 +687,7 @@ static void __ui_browser__line_arrow_down(struct ui_browser *browser, | |||
684 | SLsmg_draw_vline(end_row - row + 1); | 687 | SLsmg_draw_vline(end_row - row + 1); |
685 | 688 | ||
686 | ui_browser__gotorc(browser, end_row, column); | 689 | ui_browser__gotorc(browser, end_row, column); |
687 | if (end < browser->top_idx + browser->height) { | 690 | if (end < browser->top_idx + browser->rows) { |
688 | SLsmg_write_char(SLSMG_LLCORN_CHAR); | 691 | SLsmg_write_char(SLSMG_LLCORN_CHAR); |
689 | ui_browser__gotorc(browser, end_row, column + 1); | 692 | ui_browser__gotorc(browser, end_row, column + 1); |
690 | SLsmg_write_char(SLSMG_HLINE_CHAR); | 693 | SLsmg_write_char(SLSMG_HLINE_CHAR); |