X-Git-Url: https://git.lttng.org/?p=lttngtop.git;a=blobdiff_plain;f=src%2Fcursesdisplay.c;h=49ec23ce6f8d72169abdc18af7ac33dd60902e61;hp=7db11401304c56633837f5c37b694c6493fdbf66;hb=84c36c18637e2b02dd9a91646065f90e02eca660;hpb=d2fd8c70dfdab4752f9e5dd685ef8d08f88c6b52 diff --git a/src/cursesdisplay.c b/src/cursesdisplay.c index 7db1140..49ec23c 100644 --- a/src/cursesdisplay.c +++ b/src/cursesdisplay.c @@ -237,11 +237,21 @@ int process_selected(struct processtop *process) void update_selected_processes() { + int i; + struct processtop *stored_process; + if (process_selected(selected_process)) { - g_ptr_array_remove(selected_processes, selected_process); - print_log("Process removed"); + for (i = 0; i < selected_processes->len; i++) { + stored_process = g_ptr_array_index(selected_processes, i); + if (!stored_process) + return; + if (stored_process->tid == selected_process->tid) + g_ptr_array_remove(selected_processes, + stored_process); + print_log("Process removed"); + } } else { - g_ptr_array_add(selected_processes, selected_process); + g_ptr_array_add(selected_processes, selected_process); print_log("Process added"); } } @@ -270,7 +280,7 @@ void update_footer() print_key(footer, "Enter", "Details ", current_view == process_details); print_key(footer, "Space", "Highlight ", 0); print_key(footer, "q", "Quit ", 0); - print_key(footer, "P", "Pref ", 0); + print_key(footer, "r", "Pref ", 0); print_key(footer, "p", "Pause ", toggle_pause); wrefresh(footer); @@ -524,6 +534,7 @@ void update_cputop_display() double maxcputime; int nblinedisplayed = 0; int current_line = 0; + int column; elapsed = data->end - data->start; maxcputime = elapsed * data->cpu_table->len / 100.0; @@ -541,10 +552,14 @@ void update_cputop_display() set_window_title(center, "CPU Top"); wattron(center, A_BOLD); - mvwprintw(center, 1, 1, cputopview[0].title); - mvwprintw(center, 1, 12, cputopview[1].title); - mvwprintw(center, 1, 22, cputopview[2].title); - mvwprintw(center, 1, 32, cputopview[3].title); + column = 1; + for (i = 0; i < 4; i++) { + if (cputopview[i].sort) + wattron(center, A_UNDERLINE); + mvwprintw(center, 1, column, cputopview[i].title); + wattroff(center, A_UNDERLINE); + column += 10; + } wattroff(center, A_BOLD); max_center_lines = LINES - 5 - 7 - 1 - header_offset; @@ -567,11 +582,11 @@ void update_cputop_display() mvwprintw(center, current_line + header_offset, 1, "%1.2f", tmp->totalcpunsec / maxcputime); /* TGID */ - mvwprintw(center, current_line + header_offset, 12, "%d", tmp->pid); + mvwprintw(center, current_line + header_offset, 11, "%d", tmp->pid); /* PID */ - mvwprintw(center, current_line + header_offset, 22, "%d", tmp->tid); + mvwprintw(center, current_line + header_offset, 21, "%d", tmp->tid); /* NAME */ - mvwprintw(center, current_line + header_offset, 32, "%s", tmp->comm); + mvwprintw(center, current_line + header_offset, 31, "%s", tmp->comm); wattroff(center, COLOR_PAIR(6)); wattroff(center, COLOR_PAIR(5)); nblinedisplayed++; @@ -1264,9 +1279,11 @@ void *handle_keyboard(void *p) } else { print_log("Manually moving forward"); sem_post(&timer); - /* we force to resume the refresh when moving forward */ - if (toggle_pause > 0) - resume_display(); + if (toggle_pause > 0) { + sem_post(&pause_sem); + update_current_view(); + sem_wait(&pause_sem); + } } break; @@ -1339,7 +1356,7 @@ void *handle_keyboard(void *p) resume_display(); } break; - case 'P': + case 'r': toggle_pref_panel(); break; /* ESCAPE, but slow to process, don't know why */