#define MAX_PATH_LEN 256
+#define STATE_LINE_WIDTH 4
+#define COLLISION_POSITION(height) (((height - STATE_LINE_WIDTH)/2) -3)
extern GSList *g_legend_list;
gint num_traces = lttv_traceset_number(tsc->ts);
gint i;
LttvTrace *trace;
+ LttvTraceState *tstate;
LttvHooks *background_ready_hook =
lttv_hooks_new();
for(i=0;i<num_traces;i++) {
trace = lttv_traceset_get(tsc->ts, i);
+ tstate = LTTV_TRACE_STATE(tsc->traces[i]);
- if(lttvwindowtraces_get_ready(g_quark_from_string("state"),trace)==FALSE) {
+ if(lttvwindowtraces_get_ready(g_quark_from_string("state"),trace)==FALSE
+ && !tstate->has_precomputed_states) {
if(lttvwindowtraces_get_in_progress(g_quark_from_string("state"),
trace) == FALSE) {
control_flow_data->background_info_waiting++;
}
} else {
- /* Data ready. Be its nature, this viewer doesn't need to have
+ /* Data ready. By its nature, this viewer doesn't need to have
* its data ready hook called there, because a background
* request is always linked with a redraw.
*/
static inline PropertiesLine prepare_s_e_line(LttvProcessState *process)
{
PropertiesLine prop_line;
- prop_line.line_width = 2;
+ prop_line.line_width = STATE_LINE_WIDTH;
prop_line.style = GDK_LINE_SOLID;
prop_line.y = MIDDLE;
//GdkColormap *colormap = gdk_colormap_get_system();
gdk_draw_point(hashed_process_data->pixmap,
drawing->gc,
x,
- (hashed_process_data->height/2)-3);
+ COLLISION_POSITION(hashed_process_data->height));
hashed_process_data->x.middle_marked = TRUE;
}
} else {
gdk_draw_point(hashed_process_data->pixmap,
drawing->gc,
x,
- (hashed_process_data->height/2)-3);
+ COLLISION_POSITION(hashed_process_data->height));
hashed_process_data->x.middle_marked = TRUE;
}
/* jump */
gdk_draw_point(hashed_process_data->pixmap,
drawing->gc,
x,
- (hashed_process_data->height/2)-3);
+ COLLISION_POSITION(hashed_process_data->height));
hashed_process_data->x.middle_marked = TRUE;
}
} else {
gdk_draw_point(hashed_process_data->pixmap,
drawing->gc,
x,
- (hashed_process_data->height/2)-3);
+ COLLISION_POSITION(hashed_process_data->height));
hashed_process_data->x.middle_marked = TRUE;
}
/* jump */
gdk_draw_point(hashed_process_data->pixmap,
drawing->gc,
x,
- (hashed_process_data->height/2)-3);
+ COLLISION_POSITION(hashed_process_data->height));
hashed_process_data->x.middle_marked = TRUE;
}
} else {
gdk_draw_point(hashed_process_data->pixmap,
drawing->gc,
x,
- (hashed_process_data->height/2)-3);
+ COLLISION_POSITION(hashed_process_data->height));
hashed_process_data->x.middle_marked = TRUE;
}
/* jump */
gdk_draw_point(hashed_process_data->pixmap,
drawing->gc,
x,
- (hashed_process_data->height/2)-3);
+ COLLISION_POSITION(hashed_process_data->height));
hashed_process_data->x.middle_marked = TRUE;
}
} else {
gdk_draw_point(hashed_process_data->pixmap,
drawing->gc,
x,
- (hashed_process_data->height/2)-3);
+ COLLISION_POSITION(hashed_process_data->height));
hashed_process_data->x.middle_marked = TRUE;
}
/* jump */
gdk_draw_point(hashed_process_data->pixmap,
drawing->gc,
x,
- (hashed_process_data->height/2)-3);
+ COLLISION_POSITION(hashed_process_data->height));
hashed_process_data->x.middle_marked = TRUE;
}
} else {
gdk_draw_point(hashed_process_data->pixmap,
drawing->gc,
x,
- (hashed_process_data->height/2)-3);
+ COLLISION_POSITION(hashed_process_data->height));
hashed_process_data->x.middle_marked = TRUE;
}
/* jump */