X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=ltt%2Fbranches%2Fpoly%2Flttv%2Fmodules%2Fgui%2Fcontrolflow%2Feventhooks.c;h=c2b16dfa7f7fb13a0b19d12430d89c4c07886fab;hb=fadb18a9c4eed454c8a8f9595222e0360e6edb07;hp=574538100d4218283874037a504ec43b05a8fa6c;hpb=703b25fad5513ff1d7dc442c0e5d278160964f44;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 57453810..c2b16dfa 100644 --- a/ltt/branches/poly/lttv/modules/gui/controlflow/eventhooks.c +++ b/ltt/branches/poly/lttv/modules/gui/controlflow/eventhooks.c @@ -138,9 +138,9 @@ static void request_background_data(ControlFlowData *control_flow_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( + main_window_get_widget(control_flow_data->tab), trace, "state"); lttvwindowtraces_background_notify_queue(control_flow_data, trace, ltt_time_infinite, @@ -158,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. */ } @@ -183,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; @@ -1915,8 +1915,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; } @@ -1925,6 +1927,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); @@ -2077,8 +2085,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; }