Allow to remove a selected process for the highlights
[lttngtop.git] / src / cursesdisplay.c
index 7db11401304c56633837f5c37b694c6493fdbf66..49ec23ce6f8d72169abdc18af7ac33dd60902e61 100644 (file)
@@ -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 */
This page took 0.023869 seconds and 4 git commands to generate.