Commit 1af9776fe56b2b5552b04b896e8bf111f95806f8
1 parent
124a9f05
Exists in
master
and in
5 other branches
Corrigindo bug no auto-connect
Showing
2 changed files
with
20 additions
and
6 deletions
Show diff stats
src/include/pw3270.h
| ... | ... | @@ -54,6 +54,7 @@ |
| 54 | 54 | LIB3270_EXPORT GtkWidget * pw3270_new(const gchar *host, const gchar *systype, unsigned short colors); |
| 55 | 55 | LIB3270_EXPORT void pw3270_set_host(GtkWidget *widget, const gchar *uri); |
| 56 | 56 | LIB3270_EXPORT const gchar * pw3270_get_host(GtkWidget *widget); |
| 57 | + LIB3270_EXPORT void pw3270_connect_host(GtkWidget *widget, const gchar *uri); | |
| 57 | 58 | |
| 58 | 59 | LIB3270_EXPORT gboolean pw3270_get_toggle(GtkWidget *widget, LIB3270_TOGGLE ix); |
| 59 | 60 | LIB3270_EXPORT gboolean pw3270_set_toggle_by_name(GtkWidget *widget, const gchar *name, gboolean flag); |
| ... | ... | @@ -81,7 +82,7 @@ |
| 81 | 82 | |
| 82 | 83 | LIB3270_EXPORT gboolean pw3270_get_boolean(GtkWidget *widget, const gchar *group, const gchar *key, gboolean def); |
| 83 | 84 | LIB3270_EXPORT void pw3270_set_boolean(GtkWidget *widget, const gchar *group, const gchar *key, gint val); |
| 84 | - | |
| 85 | + | |
| 85 | 86 | typedef enum pw3270_src |
| 86 | 87 | { |
| 87 | 88 | PW3270_SRC_ALL, /**< Screen contents */ | ... | ... |
src/pw3270/window.c
| ... | ... | @@ -202,24 +202,37 @@ |
| 202 | 202 | if(host) |
| 203 | 203 | { |
| 204 | 204 | set_string_to_config("host","uri","%s",host); |
| 205 | - pw3270_set_host(widget,host); | |
| 205 | + | |
| 206 | + if(pw3270_get_toggle(widget,LIB3270_TOGGLE_CONNECT_ON_STARTUP)) | |
| 207 | + pw3270_connect_host(widget,host); | |
| 208 | + else | |
| 209 | + pw3270_set_host(widget,host); | |
| 206 | 210 | } |
| 207 | 211 | else |
| 208 | 212 | { |
| 209 | 213 | gchar *ptr = get_string_from_config("host","uri",""); |
| 214 | + | |
| 210 | 215 | if(*ptr) |
| 211 | - pw3270_set_host(widget,ptr); | |
| 216 | + { | |
| 217 | + if(pw3270_get_toggle(widget,LIB3270_TOGGLE_CONNECT_ON_STARTUP)) | |
| 218 | + pw3270_connect_host(widget,ptr); | |
| 219 | + else | |
| 220 | + pw3270_set_host(widget,ptr); | |
| 221 | + } | |
| 212 | 222 | g_free(ptr); |
| 213 | 223 | } |
| 214 | 224 | |
| 215 | - if(pw3270_get_toggle(widget,LIB3270_TOGGLE_CONNECT_ON_STARTUP)) | |
| 216 | - v3270_connect(GTK_PW3270(widget)->terminal,NULL); | |
| 217 | - | |
| 218 | 225 | v3270_set_scaled_fonts(GTK_PW3270(widget)->terminal,get_boolean_from_config("terminal","sfonts",FALSE)); |
| 219 | 226 | |
| 220 | 227 | return widget; |
| 221 | 228 | } |
| 222 | 229 | |
| 230 | + void pw3270_connect_host(GtkWidget *widget, const gchar *uri) | |
| 231 | + { | |
| 232 | + g_return_if_fail(GTK_IS_PW3270(widget)); | |
| 233 | + v3270_connect(GTK_PW3270(widget)->terminal,uri); | |
| 234 | + } | |
| 235 | + | |
| 223 | 236 | void pw3270_set_host(GtkWidget *widget, const gchar *uri) |
| 224 | 237 | { |
| 225 | 238 | g_return_if_fail(GTK_IS_PW3270(widget)); | ... | ... |