+unsigned get_max_event_number(MainWindow * mw_data)
+{
+ unsigned nb = 0, *size;
+ GtkWidget * w;
+
+ w = gtk_multi_vpaned_get_first_widget(mw_data->current_tab->multi_vpaned);
+ while(w){
+ size = (unsigned*)g_object_get_data(G_OBJECT(w), MAX_NUMBER_EVENT);
+ if(size == NULL){
+ nb = G_MAXULONG;
+ break;
+ }else{
+ if(nb < *size)
+ nb = *size;
+ }
+ w = gtk_multi_vpaned_get_next_widget(mw_data->current_tab->multi_vpaned);
+ }
+ return nb;
+}
+
+void redraw_viewer(MainWindow * mw_data, TimeWindow * time_window)
+{
+ unsigned max_nb_events;
+ GdkWindow * win;
+ GdkCursor * new;
+ GtkWidget* widget;
+
+ new = gdk_cursor_new(GDK_X_CURSOR);
+ widget = lookup_widget(mw_data->mwindow, "MToolbar2");
+ win = gtk_widget_get_parent_window(widget);
+ gdk_window_set_cursor(win, new);
+ gdk_cursor_unref(new);
+ gdk_window_stick(win);
+ gdk_window_unstick(win);
+
+ //update time window of each viewer, let viewer insert hooks needed by process_traceset
+ set_time_window(mw_data, time_window);
+
+ max_nb_events = get_max_event_number(mw_data);
+
+ process_traceset_api(mw_data, time_window->start_time,
+ ltt_time_add(time_window->start_time,time_window->time_width),
+ max_nb_events);
+
+ //call hooks to show each viewer and let them remove hooks
+ show_viewer(mw_data);
+
+ gdk_window_set_cursor(win, NULL);
+}
+