retabulation 2 spaces
[lttv.git] / ltt / branches / poly / lttv / modules / guiEvents.c
index ec1e898a62c9dfe7901178a7579fe7f887634707..490e9175378cfc666c6b8e6b06e70117966cb40b 100644 (file)
@@ -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,&ltt_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;
This page took 0.023879 seconds and 4 git commands to generate.