Commit b16ac39af984b3ed9760c0cd9fc0887d5d453df8

Authored by Perry Werneck
1 parent ed23a333
Exists in master and in 1 other branch develop

Disabling traces when the trace windows is destroyed.

Showing 2 changed files with 25 additions and 2 deletions   Show diff stats
src/trace/property.c
@@ -75,6 +75,10 @@ @@ -75,6 +75,10 @@
75 75
76 } 76 }
77 77
  78 + static void on_close_tab(GtkButton G_GNUC_UNUSED(*button), GtkWidget *terminal) {
  79 + v3270_set_trace(terminal,FALSE);
  80 + }
  81 +
78 static gboolean bg_append_trace(GtkWidget *terminal) 82 static gboolean bg_append_trace(GtkWidget *terminal)
79 { 83 {
80 if(GTK_V3270(terminal)->trace) 84 if(GTK_V3270(terminal)->trace)
@@ -86,13 +90,27 @@ @@ -86,13 +90,27 @@
86 if(GTK_IS_NOTEBOOK(parent)) 90 if(GTK_IS_NOTEBOOK(parent))
87 { 91 {
88 debug("%s: Parent window %s",__FUNCTION__,"is a notebook"); 92 debug("%s: Parent window %s",__FUNCTION__,"is a notebook");
89 - GtkWidget * trace = v3270_trace_new(terminal); 93 +
  94 + GtkWidget * trace = v3270_trace_new(terminal);
  95 + GtkWidget * label = gtk_label_new(_("Trace"));
  96 + GtkWidget * tab = gtk_box_new(GTK_ORIENTATION_HORIZONTAL,0);
  97 + GtkWidget * button = gtk_button_new_from_icon_name("window-close-symbolic",GTK_ICON_SIZE_MENU);
  98 +
  99 + gtk_button_set_relief(GTK_BUTTON(button),GTK_RELIEF_NONE);
  100 + gtk_widget_set_halign(button,GTK_ALIGN_END);
  101 +
  102 + gtk_box_pack_start(GTK_BOX(tab),label,FALSE,FALSE,0);
  103 + gtk_box_pack_end(GTK_BOX(tab),button,FALSE,FALSE,0);
  104 +
  105 + g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(on_close_tab), terminal);
  106 +
90 gtk_widget_show_all(trace); 107 gtk_widget_show_all(trace);
  108 + gtk_widget_show_all(tab);
91 109
92 gtk_notebook_insert_page( 110 gtk_notebook_insert_page(
93 GTK_NOTEBOOK(parent), 111 GTK_NOTEBOOK(parent),
94 trace, 112 trace,
95 - gtk_label_new(_("Trace")), 113 + tab,
96 gtk_notebook_page_num(GTK_NOTEBOOK(parent),terminal)+1 114 gtk_notebook_page_num(GTK_NOTEBOOK(parent),terminal)+1
97 ); 115 );
98 116
src/trace/trace.c
@@ -157,6 +157,11 @@ @@ -157,6 +157,11 @@
157 } 157 }
158 158
159 if(trace->hSession) { 159 if(trace->hSession) {
  160 +
  161 + size_t ix;
  162 + for(ix=0;ix < G_N_ELEMENTS(toggles); ix++)
  163 + lib3270_set_toggle(trace->hSession, toggles[ix],0);
  164 +
160 lib3270_set_trace_handler(trace->hSession,trace->trace.handler,trace->trace.userdata); 165 lib3270_set_trace_handler(trace->hSession,trace->trace.handler,trace->trace.userdata);
161 trace->hSession = NULL; 166 trace->hSession = NULL;
162 } 167 }