X-Git-Url: http://git.lttng.org/?a=blobdiff_plain;f=lttv%2Fmodules%2Fgui%2Fdetailedevents%2Fevents.c;h=d97de5f0e252ca2de9bbe3047aacf0411af57785;hb=8924e3e4b9f77267572f4fe0d4430748c27e66ea;hp=8d18ced3e475905554a112a5fd3664258f3407ef;hpb=58b4e4ae6fe118dbf6b441692eae833df2229d3e;p=lttv.git diff --git a/lttv/modules/gui/detailedevents/events.c b/lttv/modules/gui/detailedevents/events.c index 8d18ced3..d97de5f0 100644 --- a/lttv/modules/gui/detailedevents/events.c +++ b/lttv/modules/gui/detailedevents/events.c @@ -1599,6 +1599,9 @@ static void event_update_selection(EventViewerData *event_viewer_data) guint i; GPtrArray *positions = event_viewer_data->pos; g_info("event_update_selection"); + + int isFound = FALSE; + for(i=0;ilen;i++) { LttvTracesetPosition *cur_pos = @@ -1609,11 +1612,28 @@ static void event_update_selection(EventViewerData *event_viewer_data) 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) @@ -1652,8 +1672,7 @@ gboolean update_current_time(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. */ @@ -1661,7 +1680,6 @@ gboolean update_current_time(void * hook_data, void * call_data) 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 ); @@ -1670,8 +1688,6 @@ gboolean update_current_time(void * hook_data, void * call_data) event_viewer_data->currently_selected_position = lttv_traceset_create_current_position(ts); - - } event_viewer_data->report_position = FALSE; @@ -1705,7 +1721,7 @@ gboolean timespan_changed(void * hook_data, void * call_data) EventViewerData *event_viewer_data = (EventViewerData*) hook_data; LttvTraceset * ts = lttvwindow_get_traceset(event_viewer_data->tab); - TimeInterval time_span = lttv_traceset_get_time_span(ts); + TimeInterval time_span = lttv_traceset_get_time_span_real(ts); LttTime end; @@ -1727,7 +1743,7 @@ gboolean traceset_changed(void * hook_data, void * call_data) EventViewerData *event_viewer_data = (EventViewerData*) hook_data; LttvTraceset * ts = lttvwindow_get_traceset(event_viewer_data->tab); - TimeInterval time_span = lttv_traceset_get_time_span(ts); + TimeInterval time_span = lttv_traceset_get_time_span_real(ts); LttTime end; gtk_list_store_clear(event_viewer_data->store_m); @@ -1740,7 +1756,7 @@ gboolean traceset_changed(void * hook_data, void * call_data) 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 = @@ -1749,6 +1765,7 @@ gboolean traceset_changed(void * hook_data, void * call_data) 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;