X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=ltt%2Fbranches%2Fpoly%2Flttv%2Fmodules%2Fgui%2Fcontrolflow%2Feventhooks.c;h=22015eafffe26e5a10d6878ff023c651847134e6;hb=e6542e856d40b763fd1b7e6ae72e689318148fcc;hp=05e3f43e7f88836b24a3d8efc6bc54e46ef42b3a;hpb=93ac601b7487eba4b0733f44117f45fa9dd0baee;p=lttv.git diff --git a/ltt/branches/poly/lttv/modules/gui/controlflow/eventhooks.c b/ltt/branches/poly/lttv/modules/gui/controlflow/eventhooks.c index 05e3f43e..22015eaf 100644 --- a/ltt/branches/poly/lttv/modules/gui/controlflow/eventhooks.c +++ b/ltt/branches/poly/lttv/modules/gui/controlflow/eventhooks.c @@ -139,7 +139,8 @@ static void request_background_data(ControlFlowData *control_flow_data) * starts. */ if(!lttvwindowtraces_background_request_find(trace, "state")) - lttvwindowtraces_background_request_queue(trace, "state"); + lttvwindowtraces_background_request_queue( + main_window_get_widget(control_flow_data->tab), trace, "state"); lttvwindowtraces_background_notify_queue(control_flow_data, trace, ltt_time_infinite, @@ -157,7 +158,7 @@ static void request_background_data(ControlFlowData *control_flow_data) } } else { /* Data ready. Be its nature, this viewer doesn't need to have - * its data ready hook called htere, because a background + * its data ready hook called there, because a background * request is always linked with a redraw. */ } @@ -182,7 +183,7 @@ GtkWidget * 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; @@ -278,6 +279,8 @@ static inline PropertiesLine prepare_s_e_line(LttvProcessState *process) prop_line.color = drawing_colors[COL_RUN_TRAP]; else if(process->state->t == LTTV_STATE_IRQ) prop_line.color = drawing_colors[COL_RUN_IRQ]; + else if(process->state->t == LTTV_STATE_SOFT_IRQ) + prop_line.color = drawing_colors[COL_RUN_SOFT_IRQ]; else if(process->state->t == LTTV_STATE_MODE_UNKNOWN) prop_line.color = drawing_colors[COL_MODE_UNKNOWN]; else @@ -1914,8 +1917,10 @@ gint update_time_window_hook(void *hook_data, void *call_data) control_flow_data->drawing->height); } + /* Update directly when scrolling */ + gdk_window_process_updates(control_flow_data->drawing->drawing_area->window, + TRUE); - return 0; } @@ -1924,6 +1929,12 @@ gint traceset_notify(void *hook_data, void *call_data) 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); @@ -2076,8 +2087,11 @@ gint update_current_time_hook(void *hook_data, void *call_data) } 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; }