/* Jump over draw if we are at the same x position */
- if(x == hashed_process_data->x.middle)
+ if(x == hashed_process_data->x.middle &&
+ hashed_process_data->x.middle_used)
{
+ if(hashed_process_data->x.middle_marked == FALSE) {
+ /* Draw collision indicator */
+ gdk_gc_set_foreground(drawing->gc, &drawing_colors[COL_WHITE]);
+ gdk_draw_point(drawing->pixmap,
+ drawing->gc,
+ x,
+ y+1);
+ }
/* jump */
} else {
DrawContext draw_context;
}
/* become the last x position */
hashed_process_data->x.middle = x;
+ hashed_process_data->x.middle_used = TRUE;
+ hashed_process_data->x.middle_marked = FALSE;
}
}
}
/* Jump over draw if we are at the same x position */
- if(x == hashed_process_data->x.middle)
+ if(x == hashed_process_data->x.middle &&
+ hashed_process_data->x.middle_used)
{
+ if(hashed_process_data->x.middle_marked == FALSE) {
+ /* Draw collision indicator */
+ gdk_gc_set_foreground(drawing->gc, &drawing_colors[COL_WHITE]);
+ gdk_draw_point(drawing->pixmap,
+ drawing->gc,
+ x,
+ y+1);
+ }
/* jump */
} else {
DrawContext draw_context;
/* become the last x position */
hashed_process_data->x.middle = x;
+ hashed_process_data->x.middle_used = TRUE;
+ hashed_process_data->x.middle_marked = FALSE;
}
}
}
drawing_insert_square( control_flow_data->drawing, y_in, height);
}
+ guint new_x;
+
convert_time_to_pixels(
time_window.start_time,
end_time,
evtime,
width,
- &hashed_process_data_in->x.middle);
+ &new_x);
+
+ if(hashed_process_data_in->x.middle != new_x) {
+ hashed_process_data_in->x.middle = new_x;
+ hashed_process_data_in->x.middle_used = FALSE;
+ hashed_process_data_in->x.middle_marked = FALSE;
+ }
+
return 0;
+
+
#if 0
EventsRequest *events_request = (EventsRequest*)hook_data;
ControlFlowData *control_flow_data = events_request->viewer_data;
/* Jump over draw if we are at the same x position */
- if(x == hashed_process_data->x.middle)
+ if(x == hashed_process_data->x.middle &&
+ hashed_process_data->x.middle_used)
{
+ if(hashed_process_data->x.middle_marked == FALSE) {
+ /* Draw collision indicator */
+ gdk_gc_set_foreground(drawing->gc, &drawing_colors[COL_WHITE]);
+ gdk_draw_point(drawing->pixmap,
+ drawing->gc,
+ x,
+ y+1);
+ }
/* jump */
} else {
}
/* become the last x position */
hashed_process_data->x.middle = x;
+ hashed_process_data->x.middle_used = TRUE;
+ hashed_process_data->x.middle_marked = FALSE;
}
}
&hashed_process_data);
drawing_insert_square( control_flow_data->drawing, y, height);
}
-
+
+ guint new_x;
+
convert_time_to_pixels(
time_window.start_time,
end_time,
evtime,
width,
- &hashed_process_data->x.over);
+ &new_x);
+
+ if(hashed_process_data->x.middle != new_x) {
+ hashed_process_data->x.middle = new_x;
+ hashed_process_data->x.middle_used = FALSE;
+ hashed_process_data->x.middle_marked = FALSE;
+ }
+
return 0;
}
/* Jump over draw if we are at the same x position */
- if(x == hashed_process_data->x.middle)
- {
+ if(x == hashed_process_data->x.middle &&
+ hashed_process_data->x.middle_used)
+ {
+ if(hashed_process_data->x.middle_marked == FALSE) {
+ /* Draw collision indicator */
+ gdk_gc_set_foreground(drawing->gc, &drawing_colors[COL_WHITE]);
+ gdk_draw_point(drawing->pixmap,
+ drawing->gc,
+ x,
+ y+1);
+ }
/* jump */
} else {
DrawContext draw_context;
}
/* become the last x position */
hashed_process_data->x.middle = x;
+ hashed_process_data->x.middle_used = TRUE;
+ hashed_process_data->x.middle_marked = FALSE;
}
}
evtime,
width,
&new_x);
- hashed_process_data_child->x.over = new_x;
- hashed_process_data_child->x.middle = new_x;
- hashed_process_data_child->x.under = new_x;
+
+ if(hashed_process_data_child->x.over != new_x) {
+ hashed_process_data_child->x.over = new_x;
+ hashed_process_data_child->x.over_used = FALSE;
+ hashed_process_data_child->x.over_marked = FALSE;
+ }
+ if(hashed_process_data_child->x.middle != new_x) {
+ hashed_process_data_child->x.middle = new_x;
+ hashed_process_data_child->x.middle_used = FALSE;
+ hashed_process_data_child->x.middle_marked = FALSE;
+ }
+ if(hashed_process_data_child->x.under != new_x) {
+ hashed_process_data_child->x.under = new_x;
+ hashed_process_data_child->x.under_used = FALSE;
+ hashed_process_data_child->x.under_marked = FALSE;
+ }
} else if(sub_id == 3) { /* exit */
evtime,
width,
&new_x);
- hashed_process_data->x.middle = new_x;
+ if(hashed_process_data->x.middle != new_x) {
+ hashed_process_data->x.middle = new_x;
+ hashed_process_data->x.middle_used = FALSE;
+ hashed_process_data->x.middle_marked = FALSE;
+ }
+
+
}
return 0;
}
#endif //0
- if(x == hashed_process_data->x.middle) {
+ if(x == hashed_process_data->x.middle &&
+ hashed_process_data->x.middle_used) {
+ if(hashed_process_data->x.middle_marked == FALSE) {
+ /* Draw collision indicator */
+ gdk_gc_set_foreground(drawing->gc, &drawing_colors[COL_WHITE]);
+ gdk_draw_point(drawing->pixmap,
+ drawing->gc,
+ x,
+ draw_context.drawinfo.y.over);
+ }
/* Jump */
} else {
draw_context.drawinfo.start.x = hashed_process_data->x.middle;
draw_line((void*)&prop_line, (void*)&draw_context);
/* become the last x position */
- hashed_process_data->x.middle = x;
+ if(x != hashed_process_data->x.middle) {
+ hashed_process_data->x.middle = x;
+ /* but don't use the pixel */
+ hashed_process_data->x.middle_used = FALSE;
+ }
}
}
}