From b16ac39af984b3ed9760c0cd9fc0887d5d453df8 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Thu, 14 Nov 2019 15:48:03 -0300 Subject: [PATCH] Disabling traces when the trace windows is destroyed. --- src/trace/property.c | 22 ++++++++++++++++++++-- src/trace/trace.c | 5 +++++ 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/src/trace/property.c b/src/trace/property.c index ef00ba5..9096a4a 100644 --- a/src/trace/property.c +++ b/src/trace/property.c @@ -75,6 +75,10 @@ } + static void on_close_tab(GtkButton G_GNUC_UNUSED(*button), GtkWidget *terminal) { + v3270_set_trace(terminal,FALSE); + } + static gboolean bg_append_trace(GtkWidget *terminal) { if(GTK_V3270(terminal)->trace) @@ -86,13 +90,27 @@ if(GTK_IS_NOTEBOOK(parent)) { debug("%s: Parent window %s",__FUNCTION__,"is a notebook"); - GtkWidget * trace = v3270_trace_new(terminal); + + GtkWidget * trace = v3270_trace_new(terminal); + GtkWidget * label = gtk_label_new(_("Trace")); + GtkWidget * tab = gtk_box_new(GTK_ORIENTATION_HORIZONTAL,0); + GtkWidget * button = gtk_button_new_from_icon_name("window-close-symbolic",GTK_ICON_SIZE_MENU); + + gtk_button_set_relief(GTK_BUTTON(button),GTK_RELIEF_NONE); + gtk_widget_set_halign(button,GTK_ALIGN_END); + + gtk_box_pack_start(GTK_BOX(tab),label,FALSE,FALSE,0); + gtk_box_pack_end(GTK_BOX(tab),button,FALSE,FALSE,0); + + g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(on_close_tab), terminal); + gtk_widget_show_all(trace); + gtk_widget_show_all(tab); gtk_notebook_insert_page( GTK_NOTEBOOK(parent), trace, - gtk_label_new(_("Trace")), + tab, gtk_notebook_page_num(GTK_NOTEBOOK(parent),terminal)+1 ); diff --git a/src/trace/trace.c b/src/trace/trace.c index 7c970b7..2bfadd8 100644 --- a/src/trace/trace.c +++ b/src/trace/trace.c @@ -157,6 +157,11 @@ } if(trace->hSession) { + + size_t ix; + for(ix=0;ix < G_N_ELEMENTS(toggles); ix++) + lib3270_set_toggle(trace->hSession, toggles[ix],0); + lib3270_set_trace_handler(trace->hSession,trace->trace.handler,trace->trace.userdata); trace->hSession = NULL; } -- libgit2 0.21.2