X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;ds=sidebyside;f=ltt%2Fbranches%2Fpoly%2Flttv%2Fmodules%2Fgui%2Fmain%2Fsrc%2Fcallbacks.c;h=cc6ec38bf791c73086d2eec62e7a6fee1762a8fb;hb=9f0a7b470a7b1484774ee73239f7ebc4d6e08a55;hp=76920ae60a4a2284da2cf079d6594dcfc7d05703;hpb=6f7ad7ae1581ebaad8178059594ec8f4fac35837;p=lttv.git diff --git a/ltt/branches/poly/lttv/modules/gui/main/src/callbacks.c b/ltt/branches/poly/lttv/modules/gui/main/src/callbacks.c index 76920ae6..cc6ec38b 100644 --- a/ltt/branches/poly/lttv/modules/gui/main/src/callbacks.c +++ b/ltt/branches/poly/lttv/modules/gui/main/src/callbacks.c @@ -189,7 +189,7 @@ void get_label_string (GtkWidget * text, gchar * label) strcpy(label,gtk_entry_get_text(entry)); } -void get_label(MainWindow * mw, gchar * str, gchar* dialogue_title, gchar * label_str) +gboolean get_label(MainWindow * mw, gchar * str, gchar* dialogue_title, gchar * label_str) { GtkWidget * dialogue; GtkWidget * text; @@ -220,8 +220,9 @@ void get_label(MainWindow * mw, gchar * str, gchar* dialogue_title, gchar * labe case GTK_RESPONSE_REJECT: default: gtk_widget_destroy(dialogue); - break; + return FALSE; } + return TRUE; } MainWindow * get_window_data_struct(GtkWidget * widget) @@ -497,19 +498,21 @@ void remove_trace(GtkWidget * widget, gpointer user_data) if(strcmp(remove_trace_name,name[i]) == 0){ //unselect the trace from the current viewer w = gtk_multi_vpaned_get_widget(mw_data->current_tab->multi_vpaned); - s = g_object_get_data(G_OBJECT(w), "Traceset_Selector"); - t = lttv_traceset_selector_trace_get(s,i); - lttv_trace_selector_set_selected(t, FALSE); - - //check if other viewers select the trace - w = gtk_multi_vpaned_get_first_widget(mw_data->current_tab->multi_vpaned); - while(w){ + if(w){ s = g_object_get_data(G_OBJECT(w), "Traceset_Selector"); t = lttv_traceset_selector_trace_get(s,i); - selected = lttv_trace_selector_get_selected(t); - if(selected)break; - w = gtk_multi_vpaned_get_next_widget(mw_data->current_tab->multi_vpaned); - } + lttv_trace_selector_set_selected(t, FALSE); + + //check if other viewers select the trace + w = gtk_multi_vpaned_get_first_widget(mw_data->current_tab->multi_vpaned); + while(w){ + s = g_object_get_data(G_OBJECT(w), "Traceset_Selector"); + t = lttv_traceset_selector_trace_get(s,i); + selected = lttv_trace_selector_get_selected(t); + if(selected)break; + w = gtk_multi_vpaned_get_next_widget(mw_data->current_tab->multi_vpaned); + } + }else selected = FALSE; //if no viewer selects the trace, remove it if(!selected){ @@ -651,9 +654,8 @@ void create_new_tab(GtkWidget* widget, gpointer user_data){ } strcpy(label,"Page"); - get_label(mw_data, label,"Get the name of the tab","Please input tab's name"); - - create_tab (mw_data, mw_data, notebook, label); + if(get_label(mw_data, label,"Get the name of the tab","Please input tab's name")) + create_tab (mw_data, mw_data, notebook, label); } void @@ -1133,10 +1135,19 @@ void on_MWindow_destroy (GtkObject *object, gpointer user_data) { - MainWindow *Main_Window = (MainWindow*)user_data; - + MainWindow *Main_Window = get_window_data_struct((GtkWidget*)object); + GtkWidget *widget; + Tab *tab = Main_Window->tab; + g_printf("There are : %d windows\n",g_slist_length(g_main_window_list)); + while(tab){ + while(tab->multi_vpaned->num_children){ + gtk_multi_vpaned_widget_delete(tab->multi_vpaned); + } + tab = tab->next; + } + g_win_count--; if(g_win_count == 0) gtk_main_quit ();