Commit a2f38461fdc3adcd45fef2a643d290d1d58c608a

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

Updating trace handler, resetting trace states when trace window closes.

Showing 1 changed file with 6 additions and 7 deletions   Show diff stats
src/trace/trace.c
@@ -85,8 +85,8 @@ @@ -85,8 +85,8 @@
85 85
86 /// @brief lib3270's saved trace handler. 86 /// @brief lib3270's saved trace handler.
87 struct { 87 struct {
88 - void (*handler)(H3270 *session, void *userdata, const char *fmt, va_list args);  
89 - void *userdata; 88 + LIB3270_TRACE_HANDLER handler;
  89 + void *userdata;
90 } trace; 90 } trace;
91 91
92 }; 92 };
@@ -97,13 +97,11 @@ @@ -97,13 +97,11 @@
97 97
98 /*--[ Implement ]------------------------------------------------------------------------------------*/ 98 /*--[ Implement ]------------------------------------------------------------------------------------*/
99 99
100 - static void trace_handler(H3270 *hSession, void *userdata, const char *fmt, va_list args) 100 + static int trace_handler(const H3270 *hSession, void *userdata, const char *message)
101 { 101 {
102 - g_autofree gchar *ptr = g_strdup_vprintf(fmt,args);  
103 - g_autofree gchar * utftext = g_convert_with_fallback(ptr,-1,"UTF-8",lib3270_get_display_charset(hSession),"?",NULL,NULL,NULL);  
104 - 102 + g_autofree gchar * utftext = g_convert_with_fallback(message,-1,"UTF-8",lib3270_get_display_charset(hSession),"?",NULL,NULL,NULL);
105 v3270_trace_append_text(GTK_WIDGET(userdata),utftext); 103 v3270_trace_append_text(GTK_WIDGET(userdata),utftext);
106 - 104 + return 0;
107 } 105 }
108 106
109 static void set_session(V3270Trace *widget, H3270 *hSession) 107 static void set_session(V3270Trace *widget, H3270 *hSession)
@@ -153,6 +151,7 @@ @@ -153,6 +151,7 @@
153 for(ix = 0; ix < G_N_ELEMENTS(toggles); ix++) 151 for(ix = 0; ix < G_N_ELEMENTS(toggles); ix++)
154 { 152 {
155 // TODO: Use button "destroy" signal to cleanup. 153 // TODO: Use button "destroy" signal to cleanup.
  154 + lib3270_set_toggle(trace->hSession,toggles[ix],0);
156 trace->buttons.widgets[ix] = NULL; 155 trace->buttons.widgets[ix] = NULL;
157 } 156 }
158 157