pos = (LttvTracesetPosition*)g_ptr_array_index(
event_viewer_data->pos,
0);
- lttv_traceset_seek_to_position(pos);
+ lttv_state_traceset_seek_position(ts,pos);
}
- }
+ } else {
+ lttv_state_traceset_seek_time(ts,time);
+
+ }
/* Note that, as we mess with the tsc position, this function CANNOT be called
* from a hook inside the lttv_process_traceset_middle. */
LttTime time_val = ltt_time_sub(time,time_span.start_time);
event_viewer_data->previous_value = ltt_time_to_double(time_val);
- lttv_traceset_seek_to_position(event_viewer_data->first_event);
+ lttv_state_traceset_seek_position(ts, event_viewer_data->first_event);
} else {
/* Seek by time */
- lttv_traceset_seek_to_position(timePos);
+ lttv_state_traceset_seek_time(ts, time);
LttTime time_val = ltt_time_sub(time,time_span.start_time);
guint i;
GPtrArray *positions = event_viewer_data->pos;
g_info("event_update_selection");
+
+ int isFound = FALSE;
+
for(i=0;i<positions->len;i++) {
LttvTracesetPosition *cur_pos =
if(path) {
gtk_tree_view_set_cursor(GTK_TREE_VIEW(event_viewer_data->tree_v),
path, NULL, FALSE);
+ gtk_widget_grab_focus(event_viewer_data->tree_v );
gtk_tree_path_free(path);
+ isFound = TRUE;
break;
}
}
}
+ if(isFound){
+ return;
+ }
+ /* If the current selection is not in the currently displayed events*/
+ LttTime currentTime = lttv_traceset_position_get_time(
+ event_viewer_data->currently_selected_position);
+ LttTime time;
+
+ LttvTraceset * ts = lttvwindow_get_traceset(event_viewer_data->tab);
+ TimeInterval time_span = lttv_traceset_get_time_span_real(ts);
+ time = ltt_time_sub(currentTime, time_span.start_time);
+ gtk_adjustment_set_value(event_viewer_data->vadjust_c,
+ ltt_time_to_double(time));
+ gtk_widget_grab_focus(event_viewer_data->tree_v );
+
}
static int current_time_get_first_event_hook(void *hook_data, void *call_data)
EventViewerData *event_viewer_data = (EventViewerData*) hook_data;
const LttTime * current_time = (LttTime*)call_data;
- LttvTraceset * ts =
- lttvwindow_get_traceset(event_viewer_data->tab);
+ LttvTraceset * ts = lttvwindow_get_traceset(event_viewer_data->tab);
/* If the currently selected event time != current time, set the first event
* with this time as currently selected. */
event_viewer_data->currently_selected_position);
if(ltt_time_compare(pos_time, *current_time) != 0) {
-
/*create position*/
LttvTracesetPosition *currentPosition =
lttv_traceset_create_time_position(ts,*current_time );
/*seek to current position*/
- lttv_traceset_seek_to_position(currentPosition);
+ lttv_state_traceset_seek_time(ts, *current_time);
event_viewer_data->currently_selected_position =
lttv_traceset_create_current_position(ts);
-
-
}
event_viewer_data->report_position = FALSE;
lttv_traceset_destroy_position(event_viewer_data->currently_selected_position);
lttv_traceset_destroy_position(event_viewer_data->first_event);
lttv_traceset_destroy_position(event_viewer_data->last_event);
-
+
event_viewer_data->currently_selected_position =
lttv_traceset_create_current_position(ts);
event_viewer_data->first_event =
lttv_traceset_create_current_position(ts);
get_events(event_viewer_data->vadjust_c->value, event_viewer_data);
+
#endif //babel_cleanup
// event_viewer_data->vadjust_c->value = 0;