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 | } | ... | ... |