X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;ds=sidebyside;f=ltt%2Fbranches%2Fpoly%2Flttv%2Fmodules%2FguiEvents.c;h=490e9175378cfc666c6b8e6b06e70117966cb40b;hb=a56a1ba44968b834968a8ab0f39d4f64eb6b5e5c;hp=ec1e898a62c9dfe7901178a7579fe7f887634707;hpb=182b38e3c4dfe6b5a762aeee8e56cc6800ca59fc;p=lttv.git diff --git a/ltt/branches/poly/lttv/modules/guiEvents.c b/ltt/branches/poly/lttv/modules/guiEvents.c index ec1e898a..490e9175 100644 --- a/ltt/branches/poly/lttv/modules/guiEvents.c +++ b/ltt/branches/poly/lttv/modules/guiEvents.c @@ -96,6 +96,7 @@ typedef struct _EventViewerData { unsigned end_event_index; //the last event shown in the window unsigned size; //maxi number of events loaded when instance the viewer gboolean shown; //indicate if event detail is shown or not + gboolean current_time_updated; char * filter_key; //scroll window containing Tree View @@ -408,7 +409,9 @@ gui_events(MainWindow *parent_window, LttvTracesetSelector * s,char* key ) /* Create vertical scrollbar and pack it */ event_viewer_data->vscroll_vc = gtk_vscrollbar_new(NULL); gtk_range_set_update_policy (GTK_RANGE(event_viewer_data->vscroll_vc), - GTK_UPDATE_DISCONTINUOUS); + GTK_UPDATE_CONTINUOUS); + // Changed by MD : more user friendly :) + //GTK_UPDATE_DISCONTINUOUS); gtk_box_pack_start(GTK_BOX(event_viewer_data->hbox_v), event_viewer_data->vscroll_vc, FALSE, TRUE, 0); /* Get the vertical scrollbar's adjustment */ @@ -457,6 +460,7 @@ gui_events(MainWindow *parent_window, LttvTracesetSelector * s,char* key ) // tree_v_set_cursor(event_viewer_data); event_viewer_data->shown = FALSE; + event_viewer_data->current_time_updated = FALSE; event_viewer_data->size = RESERVE_SMALL_SIZE; g_object_set_data( G_OBJECT(event_viewer_data->hbox_v), @@ -680,7 +684,7 @@ void tree_v_cursor_changed_cb (GtkWidget *widget, gpointer data) /* On cursor change, modify the currently selected event by calling * the right API function */ tree_v_get_cursor(event_viewer_data); -/* + gtk_tree_view_get_cursor(GTK_TREE_VIEW(event_viewer_data->tree_v), &path, NULL); if(gtk_tree_model_get_iter(model,&iter,path)){ gtk_tree_model_get(model, &iter, TIME_COLUMN, &time, -1); @@ -688,12 +692,14 @@ void tree_v_cursor_changed_cb (GtkWidget *widget, gpointer data) ltt_time.tv_nsec = time % NANOSECONDS_PER_SECOND; if(ltt_time.tv_sec != event_viewer_data->current_time.tv_sec || - ltt_time.tv_nsec != event_viewer_data->current_time.tv_nsec) + ltt_time.tv_nsec != event_viewer_data->current_time.tv_nsec){ + event_viewer_data->current_time_updated = TRUE; set_current_time(event_viewer_data->mw,<t_time); + } }else{ g_warning("Can not get iter\n"); } -*/ + } @@ -1423,6 +1429,11 @@ gboolean update_current_time(void * hook_data, void * call_data) int i, j; LttTime t; + if(event_viewer_data->current_time_updated ){ + event_viewer_data->current_time_updated = FALSE; + return FALSE; + } + //check if the event is shown in the current viewer if(gtk_tree_model_get_iter_first(model, &iter)){ while(1){ @@ -1482,6 +1493,7 @@ gboolean update_current_time(void * hook_data, void * call_data) sprintf(str_path,"%d\0",count); path = gtk_tree_path_new_from_string (str_path); gtk_tree_view_set_cursor(GTK_TREE_VIEW(event_viewer_data->tree_v), path, NULL, FALSE); + g_signal_stop_emission_by_name(G_OBJECT(event_viewer_data->tree_v), "cursor-changed"); gtk_tree_path_free(path); return FALSE;