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 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 82 static gboolean bg_append_trace(GtkWidget *terminal)
79 83 {
80 84 if(GTK_V3270(terminal)->trace)
... ... @@ -86,13 +90,27 @@
86 90 if(GTK_IS_NOTEBOOK(parent))
87 91 {
88 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 107 gtk_widget_show_all(trace);
  108 + gtk_widget_show_all(tab);
91 109  
92 110 gtk_notebook_insert_page(
93 111 GTK_NOTEBOOK(parent),
94 112 trace,
95   - gtk_label_new(_("Trace")),
  113 + tab,
96 114 gtk_notebook_page_num(GTK_NOTEBOOK(parent),terminal)+1
97 115 );
98 116  
... ...
src/trace/trace.c
... ... @@ -157,6 +157,11 @@
157 157 }
158 158  
159 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 165 lib3270_set_trace_handler(trace->hSession,trace->trace.handler,trace->trace.userdata);
161 166 trace->hSession = NULL;
162 167 }
... ...