X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=ltt%2Fbranches%2Fpoly%2Flttv%2Fmodules%2Fgui%2Fmain%2Fsrc%2Fcallbacks.c;h=f7eaa26b6b7e10afb4825df6f9285f4dbdeb41b9;hb=eb38aea55cfc4cd9f058c108db61685d59fd3d67;hp=2d0417193bfdbb9900427d58d3d9d7fa0dfdfe12;hpb=2901f3148ea8fca148245713db2e3b4498f3fcb3;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 2d041719..f7eaa26b 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) @@ -651,9 +652,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 @@ -1016,7 +1016,7 @@ void on_button_new_clicked (GtkButton *button, gpointer user_data) { - create_new_window((GtkWidget*)button, user_data, FALSE); + create_new_window((GtkWidget*)button, user_data, TRUE); } void @@ -1133,10 +1133,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 (); @@ -1616,7 +1625,7 @@ void construct_main_window(MainWindow * parent, WindowCreationData * win_creatio } //for now there is no name field in LttvTraceset structure //Use "Traceset" as the label for the default tab - create_tab(NULL, new_m_window, notebook,"Traceset"); + create_tab(parent, new_m_window, notebook,"Traceset"); g_object_set_data_full( G_OBJECT(new_m_window->mwindow), @@ -1658,8 +1667,9 @@ void tab_destructor(Tab * tab_instance) ref_count = lttv_trace_get_ref_number(trace); if(ref_count <= 1){ ltt_trace_close(lttv_trace(trace)); + lttv_trace_destroy(trace); } - lttv_trace_destroy(trace); + // lttv_trace_destroy(trace); } } lttv_traceset_destroy(tab_instance->traceset_info->traceset);