traceset per tab
[lttv.git] / ltt / branches / poly / lttv / modules / gui / mainWin / src / gtkcustom.c
index 492a9ef018067e9dd72929daa98041deb0c5dad6..05f56448281e437fd3c01a094d7e50b09fb1d3b0 100644 (file)
@@ -106,10 +106,13 @@ void gtk_custom_set_adjust(GtkCustom * custom, gboolean first_time)
 {
   TimeWindow time_window;
   TimeInterval *time_span;
+  double tmp, start;
+  double range = 0;
 
   get_time_window(custom->mw,&time_window);
   if(first_time){
-    time_span = LTTV_TRACESET_CONTEXT(custom->mw->traceset_info->traceset_context)->Time_Span ;
+    time_span = LTTV_TRACESET_CONTEXT(custom->mw->current_tab->traceset_info->
+                                     traceset_context)->Time_Span ;
   
     custom->hadjust->lower = ltt_time_to_double(time_span->startTime) * 
                              NANOSECONDS_PER_SECOND;
@@ -123,14 +126,25 @@ void gtk_custom_set_adjust(GtkCustom * custom, gboolean first_time)
     g_warning("Insert a viewer first");
     return;
   }
+
+  start = ltt_time_to_double(time_window.start_time) * NANOSECONDS_PER_SECOND;
+  tmp = custom->hadjust->upper - custom->hadjust->lower;
+
   custom->hadjust->page_increment = ltt_time_to_double(
                        time_window.time_width) * NANOSECONDS_PER_SECOND;
+
+  if(custom->hadjust->page_increment >= tmp - range)
+    custom->hadjust->value = custom->hadjust->lower;
+  if(start + custom->hadjust->page_increment >= custom->hadjust->upper - range)
+    custom->hadjust->value = start;
+
   /* page_size to the whole visible area will take care that the
      * scroll value + the shown area will never be more than what is
      * in the trace. */
   custom->hadjust->page_size = custom->hadjust->page_increment;
   custom->hadjust->step_increment = custom->hadjust->page_increment / 10;
 
+  gtk_adjustment_changed (custom->hadjust);
 }
 
 void gtk_custom_widget_add(GtkCustom * custom, GtkWidget * widget1)
This page took 0.024629 seconds and 4 git commands to generate.