Commit b16ac39af984b3ed9760c0cd9fc0887d5d453df8
1 parent
ed23a333
Exists in
master
and in
1 other branch
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 | } | ... | ... |