* Wait for all the awaited computations to be over.
*/
-gint background_ready(void *hook_data, void *call_data)
+static gint background_ready(void *hook_data, void *call_data)
{
ControlFlowData *control_flow_data = (ControlFlowData *)hook_data;
LttvTrace *trace = (LttvTrace*)call_data;
* information. Happens when two viewers ask for it before servicing
* starts.
*/
- lttvwindowtraces_background_request_remove(trace, "state");
- lttvwindowtraces_background_request_queue(trace,
- "state");
+ if(!lttvwindowtraces_background_request_find(trace, "state"))
+ lttvwindowtraces_background_request_queue(trace, "state");
lttvwindowtraces_background_notify_queue(control_flow_data,
trace,
ltt_time_infinite,
h_guicontrolflow(Tab *tab)
{
g_info("h_guicontrolflow, %p", tab);
- ControlFlowData *control_flow_data = guicontrolflow() ;
+ ControlFlowData *control_flow_data = guicontrolflow(tab) ;
control_flow_data->tab = tab;
control_flow_data->drawing->height);
}
+ /* Update directly when scrolling */
+ gdk_window_process_updates(control_flow_data->drawing->drawing_area->window,
+ TRUE);
-
return 0;
}
ControlFlowData *control_flow_data = (ControlFlowData*) hook_data;
Drawing_t *drawing = control_flow_data->drawing;
+ if(unlikely(drawing->gc == NULL)) {
+ return FALSE;
+ }
+ if(drawing->dotted_gc == NULL) {
+ return FALSE;
+ }
drawing_clear(control_flow_data->drawing);
processlist_clear(control_flow_data->process_list);
}
gtk_widget_queue_draw(control_flow_data->drawing->drawing_area);
-
+ /* Update directly when scrolling */
+ gdk_window_process_updates(control_flow_data->drawing->drawing_area->window,
+ TRUE);
+
return 0;
}