X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=ltt%2Fbranches%2Fpoly%2Flttv%2Fmodules%2Fgui%2Fdetailedevents%2Fevents.c;h=82f83500b545466e46c0a058cd32cbf79a2df8d5;hb=abe346a3ab2fabfedb8e86f707ea7d335f527acf;hp=f2d4a73a203eb7822e99cf74fea4abf12c6810be;hpb=af1cf84f336e34ad46ab700820f4997034c26334;p=lttv.git diff --git a/ltt/branches/poly/lttv/modules/gui/detailedevents/events.c b/ltt/branches/poly/lttv/modules/gui/detailedevents/events.c index f2d4a73a..82f83500 100644 --- a/ltt/branches/poly/lttv/modules/gui/detailedevents/events.c +++ b/ltt/branches/poly/lttv/modules/gui/detailedevents/events.c @@ -1,3 +1,22 @@ +/* This file is part of the Linux Trace Toolkit viewer + * Copyright (C) 2003-2004 Mathieu Desnoyers and XangXiu Yang + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License Version 2 as + * published by the Free Software Foundation; + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, + * MA 02111-1307, USA. + */ + + //*! \defgroup GuiEvents libGuiEvents: The GUI Events display plugin */ /*\@{*/ @@ -27,7 +46,7 @@ #include #include -#include +#include #include #include #include @@ -459,12 +478,12 @@ gui_events(MainWindow *parent_window, LttvTracesetSelector * s,char* key ) G_OBJECT(event_viewer_data->hbox_v), MAX_NUMBER_EVENT, &event_viewer_data->size); - +/* g_object_set_data( G_OBJECT(event_viewer_data->hbox_v), TRACESET_TIME_SPAN, &event_viewer_data->time_span); - +*/ event_viewer_data->filter_key = g_strdup(key); g_object_set_data( G_OBJECT(event_viewer_data->hbox_v), @@ -786,6 +805,12 @@ gboolean show_event_detail(void * hook_data, void * call_data) EventViewerData *event_viewer_data = (EventViewerData*) hook_data; LttvTracesetContext * tsc = get_traceset_context(event_viewer_data->mw); + if(event_viewer_data->raw_trace_data_queue_tmp->length == 0 && + event_viewer_data->raw_trace_data_queue->length == 0){ + event_viewer_data->shown = FALSE; + return FALSE; + } + if(event_viewer_data->shown == FALSE){ event_viewer_data->shown = TRUE; update_raw_data_array(event_viewer_data, @@ -1182,6 +1207,7 @@ gui_events_free(EventViewerData *event_viewer_data) unreg_show_viewer(show_event_detail,event_viewer_data, event_viewer_data->mw); unreg_update_traceset(traceset_changed,event_viewer_data, event_viewer_data->mw); + g_free(event_viewer_data->filter_key); g_event_viewer_data_list = g_slist_remove(g_event_viewer_data_list, event_viewer_data); g_free(event_viewer_data); } @@ -1194,8 +1220,8 @@ gui_events_destructor(EventViewerData *event_viewer_data) /* May already been done by GTK window closing */ if(GTK_IS_WIDGET(event_viewer_data->hbox_v)){ + gui_events_free(event_viewer_data); gtk_widget_destroy(event_viewer_data->hbox_v); - g_free(event_viewer_data->filter_key); event_viewer_data = NULL; } @@ -1422,6 +1448,8 @@ gboolean update_current_time(void * hook_data, void * call_data) int i, j; LttTime t; + if(!event_viewer_data->raw_trace_data_queue->head) return FALSE; + if(event_viewer_data->current_time_updated ){ event_viewer_data->current_time_updated = FALSE; return FALSE;