From 1af9776fe56b2b5552b04b896e8bf111f95806f8 Mon Sep 17 00:00:00 2001 From: perry.werneck@gmail.com Date: Tue, 30 Apr 2013 11:50:28 +0000 Subject: [PATCH] Corrigindo bug no auto-connect --- src/include/pw3270.h | 3 ++- src/pw3270/window.c | 23 ++++++++++++++++++----- 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/src/include/pw3270.h b/src/include/pw3270.h index bfe9f95..f1f5269 100644 --- a/src/include/pw3270.h +++ b/src/include/pw3270.h @@ -54,6 +54,7 @@ LIB3270_EXPORT GtkWidget * pw3270_new(const gchar *host, const gchar *systype, unsigned short colors); LIB3270_EXPORT void pw3270_set_host(GtkWidget *widget, const gchar *uri); LIB3270_EXPORT const gchar * pw3270_get_host(GtkWidget *widget); + LIB3270_EXPORT void pw3270_connect_host(GtkWidget *widget, const gchar *uri); LIB3270_EXPORT gboolean pw3270_get_toggle(GtkWidget *widget, LIB3270_TOGGLE ix); LIB3270_EXPORT gboolean pw3270_set_toggle_by_name(GtkWidget *widget, const gchar *name, gboolean flag); @@ -81,7 +82,7 @@ LIB3270_EXPORT gboolean pw3270_get_boolean(GtkWidget *widget, const gchar *group, const gchar *key, gboolean def); LIB3270_EXPORT void pw3270_set_boolean(GtkWidget *widget, const gchar *group, const gchar *key, gint val); - + typedef enum pw3270_src { PW3270_SRC_ALL, /**< Screen contents */ diff --git a/src/pw3270/window.c b/src/pw3270/window.c index 149d586..7404e31 100644 --- a/src/pw3270/window.c +++ b/src/pw3270/window.c @@ -202,24 +202,37 @@ if(host) { set_string_to_config("host","uri","%s",host); - pw3270_set_host(widget,host); + + if(pw3270_get_toggle(widget,LIB3270_TOGGLE_CONNECT_ON_STARTUP)) + pw3270_connect_host(widget,host); + else + pw3270_set_host(widget,host); } else { gchar *ptr = get_string_from_config("host","uri",""); + if(*ptr) - pw3270_set_host(widget,ptr); + { + if(pw3270_get_toggle(widget,LIB3270_TOGGLE_CONNECT_ON_STARTUP)) + pw3270_connect_host(widget,ptr); + else + pw3270_set_host(widget,ptr); + } g_free(ptr); } - if(pw3270_get_toggle(widget,LIB3270_TOGGLE_CONNECT_ON_STARTUP)) - v3270_connect(GTK_PW3270(widget)->terminal,NULL); - v3270_set_scaled_fonts(GTK_PW3270(widget)->terminal,get_boolean_from_config("terminal","sfonts",FALSE)); return widget; } + void pw3270_connect_host(GtkWidget *widget, const gchar *uri) + { + g_return_if_fail(GTK_IS_PW3270(widget)); + v3270_connect(GTK_PW3270(widget)->terminal,uri); + } + void pw3270_set_host(GtkWidget *widget, const gchar *uri) { g_return_if_fail(GTK_IS_PW3270(widget)); -- libgit2 0.21.2