Commit d79767780cadc8d05de4104540a34cc7e1dca541
1 parent
c322c258
Exists in
master
and in
5 other branches
Delaying auto-connect to prevent hangs on windows.
Showing
1 changed file
with
9 additions
and
8 deletions
Show diff stats
src/pw3270/window.c
@@ -237,6 +237,12 @@ static GtkWidget * trace_window = NULL; | @@ -237,6 +237,12 @@ static GtkWidget * trace_window = NULL; | ||
237 | 237 | ||
238 | } | 238 | } |
239 | 239 | ||
240 | + static gboolean bg_auto_connect(GtkWidget *widget) | ||
241 | + { | ||
242 | + pw3270_connect(widget); | ||
243 | + return FALSE; | ||
244 | + } | ||
245 | + | ||
240 | GtkWidget * pw3270_new(const gchar *host, const gchar *systype, unsigned short colors) | 246 | GtkWidget * pw3270_new(const gchar *host, const gchar *systype, unsigned short colors) |
241 | { | 247 | { |
242 | GtkWidget * widget = g_object_new(GTK_TYPE_PW3270, NULL); | 248 | GtkWidget * widget = g_object_new(GTK_TYPE_PW3270, NULL); |
@@ -255,16 +261,11 @@ static GtkWidget * trace_window = NULL; | @@ -255,16 +261,11 @@ static GtkWidget * trace_window = NULL; | ||
255 | { | 261 | { |
256 | set_string_to_config("host","uri","%s",host); | 262 | set_string_to_config("host","uri","%s",host); |
257 | pw3270_set_url(widget,host); | 263 | pw3270_set_url(widget,host); |
258 | - connct = TRUE; | ||
259 | } | 264 | } |
260 | else | 265 | else |
261 | { | 266 | { |
262 | gchar *ptr = get_string_from_config("host","uri",""); | 267 | gchar *ptr = get_string_from_config("host","uri",""); |
263 | - if(*ptr) | ||
264 | - { | ||
265 | - pw3270_set_url(widget,ptr); | ||
266 | - connct = pw3270_get_toggle(widget,LIB3270_TOGGLE_CONNECT_ON_STARTUP) ? TRUE : FALSE; | ||
267 | - } | 268 | + pw3270_set_url(widget,ptr); |
268 | g_free(ptr); | 269 | g_free(ptr); |
269 | } | 270 | } |
270 | 271 | ||
@@ -289,8 +290,8 @@ static GtkWidget * trace_window = NULL; | @@ -289,8 +290,8 @@ static GtkWidget * trace_window = NULL; | ||
289 | 290 | ||
290 | v3270_set_scaled_fonts(GTK_PW3270(widget)->terminal,get_boolean_from_config("terminal","sfonts",FALSE)); | 291 | v3270_set_scaled_fonts(GTK_PW3270(widget)->terminal,get_boolean_from_config("terminal","sfonts",FALSE)); |
291 | 292 | ||
292 | - if(connct) | ||
293 | - pw3270_connect(widget); | 293 | + if(pw3270_get_toggle(widget,LIB3270_TOGGLE_CONNECT_ON_STARTUP)) |
294 | + g_idle_add((GSourceFunc) bg_auto_connect, widget); | ||
294 | 295 | ||
295 | return widget; | 296 | return widget; |
296 | } | 297 | } |