diff --git a/modules/lib3270 b/modules/lib3270 index b0b0022..37ad659 160000 --- a/modules/lib3270 +++ b/modules/lib3270 @@ -1 +1 @@ -Subproject commit b0b00222b9fe55937cfdcefc4f4ebc8ce90e01dc +Subproject commit 37ad659b945694a03130fe873b0b095d939c6448 diff --git a/src/pw3270/main.c b/src/pw3270/main.c index 10c281a..20b80d2 100644 --- a/src/pw3270/main.c +++ b/src/pw3270/main.c @@ -274,6 +274,7 @@ static void trace_window_destroy(GtkWidget *widget, H3270 *hSession) trace_window = NULL; } +/* static void g_trace(H3270 *hSession, const char *fmt, va_list args) { gchar *ptr = g_strdup_vprintf(fmt,args); @@ -334,6 +335,7 @@ static void g_trace(H3270 *hSession, const char *fmt, va_list args) g_free(ptr); } +*/ static gboolean startup(GtkWidget *toplevel) { @@ -491,7 +493,7 @@ int main(int argc, char *argv[]) g_log_set_default_handler(g_logfile,NULL); } - lib3270_set_trace_handler(g_trace); +// lib3270_set_trace_handler(g_trace); // Check GTK Version { diff --git a/src/pw3270/v3270/widget.c b/src/pw3270/v3270/widget.c index 52bb291..4550966 100644 --- a/src/pw3270/v3270/widget.c +++ b/src/pw3270/v3270/widget.c @@ -927,6 +927,28 @@ static void release_activity_timer(v3270 *widget) widget->activity.timer = NULL; } +static int popup_handler(H3270 *session, LIB3270_NOTIFY type, const char *title, const char *msg, const char *fmt, va_list args) + { + GtkWidget *terminal = (GtkWidget *) lib3270_get_user_data(session); + + if(terminal && GTK_IS_V3270(terminal)) { + + if(fmt) + { + gchar *text = g_strdup_vprintf(fmt,args); + v3270_popup_message(GTK_WIDGET(terminal),type,title,msg,text); + g_free(text); + } + else + { + v3270_popup_message(GTK_WIDGET(terminal),type,title,msg,NULL); + } + + } + + return 0; + } + static void v3270_init(v3270 *widget) { struct lib3270_session_callbacks *cbk; @@ -934,16 +956,7 @@ static void v3270_init(v3270 *widget) widget->host = lib3270_session_new(""); lib3270_set_user_data(widget->host,widget); - - /* - trace("%s host->sz=%d expected=%d revision=%s expected=%s",__FUNCTION__,widget->host->sz,(int) sizeof(H3270),lib3270_get_revision(),PACKAGE_REVISION); - - if(widget->host->sz != sizeof(H3270)) - { - g_error( _( "Unexpected signature in H3270 object, possible version mismatch in lib3270") ); - return; - } - */ + lib3270_set_popup_handler(widget->host, popup_handler); cbk = lib3270_get_session_callbacks(widget->host,sizeof(struct lib3270_session_callbacks)); if(!cbk) diff --git a/src/pw3270/window.c b/src/pw3270/window.c index ff22d78..b84ec91 100644 --- a/src/pw3270/window.c +++ b/src/pw3270/window.c @@ -139,27 +139,7 @@ return 0; } - static int popup_handler(H3270 *session, void *terminal, LIB3270_NOTIFY type, const char *title, const char *msg, const char *fmt, va_list args) - { - GtkWidget *widget = NULL; - - if(session && terminal && GTK_IS_V3270(terminal)) - widget = GTK_WIDGET(terminal); - - if(fmt) - { - gchar *text = g_strdup_vprintf(fmt,args); - v3270_popup_message(GTK_WIDGET(widget),type,title,msg,text); - g_free(text); - } - else - { - v3270_popup_message(GTK_WIDGET(widget),type,title,msg,NULL); - } - return 0; - } - - static void pw3270_class_init(pw3270Class *klass) + static void pw3270_class_init(pw3270Class *klass) { #if GTK_CHECK_VERSION(3,0,0) GtkWidgetClass * widget_class = GTK_WIDGET_CLASS(klass); @@ -172,7 +152,6 @@ #endif // GTK3 configuration_init(); - lib3270_set_popup_handler(popup_handler); } -- libgit2 0.21.2