Commit d79767780cadc8d05de4104540a34cc7e1dca541

Authored by Perry Werneck
1 parent c322c258

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 }