Commit 25ddfbb78a3ab460f278483c918aed60ba0a8f58

Authored by perry.werneck@gmail.com
1 parent 8108ab5c

Corrigindo mensagem de host-not-found, salvando na configuracao quando o widget …

…e criado com um nome de host
src/lib3270/iocalls.c
@@ -529,8 +529,7 @@ static int internal_event_dispatcher(H3270 *hSession, int block) @@ -529,8 +529,7 @@ static int internal_event_dispatcher(H3270 *hSession, int block)
529 529
530 static int internal_callthread(int(*callback)(H3270 *, void *), H3270 *session, void *parm) 530 static int internal_callthread(int(*callback)(H3270 *, void *), H3270 *session, void *parm)
531 { 531 {
532 - callback(session,parm);  
533 - return 0; 532 + return callback(session,parm);
534 } 533 }
535 534
536 static int internal_wait(H3270 *hSession, int seconds) 535 static int internal_wait(H3270 *hSession, int seconds)
@@ -697,20 +696,18 @@ LIB3270_EXPORT int lib3270_register_handlers(const struct lib3270_callbacks *cbk @@ -697,20 +696,18 @@ LIB3270_EXPORT int lib3270_register_handlers(const struct lib3270_callbacks *cbk
697 696
698 LIB3270_EXPORT int lib3270_call_thread(int(*callback)(H3270 *h, void *), H3270 *h, void *parm) 697 LIB3270_EXPORT int lib3270_call_thread(int(*callback)(H3270 *h, void *), H3270 *h, void *parm)
699 { 698 {
700 -// int rc; 699 + int rc;
701 CHECK_SESSION_HANDLE(h); 700 CHECK_SESSION_HANDLE(h);
702 701
703 - if(h->set_timer)  
704 - h->set_timer(h,1); 702 + h->set_timer(h,1);
705 703
706 lib3270_main_iterate(h,0); 704 lib3270_main_iterate(h,0);
707 - callthread(callback,h,parm); 705 + rc = callthread(callback,h,parm);
708 lib3270_main_iterate(h,0); 706 lib3270_main_iterate(h,0);
709 707
710 - if(h->set_timer)  
711 - h->set_timer(h,0); 708 + h->set_timer(h,0);
712 709
713 - return 0; 710 + return rc;
714 } 711 }
715 712
716 LIB3270_EXPORT void lib3270_main_iterate(H3270 *hSession, int block) 713 LIB3270_EXPORT void lib3270_main_iterate(H3270 *hSession, int block)
src/lib3270/session.c
@@ -155,6 +155,10 @@ static void update_ssl(H3270 *session, LIB3270_SSL_STATE state) @@ -155,6 +155,10 @@ static void update_ssl(H3270 *session, LIB3270_SSL_STATE state)
155 { 155 {
156 } 156 }
157 157
  158 +static void set_timer(H3270 *session, unsigned char on)
  159 +{
  160 +}
  161 +
158 static void screen_disp(H3270 *session) 162 static void screen_disp(H3270 *session)
159 { 163 {
160 CHECK_SESSION_HANDLE(session); 164 CHECK_SESSION_HANDLE(session);
@@ -198,6 +202,7 @@ static void lib3270_session_init(H3270 *hSession, const char *model) @@ -198,6 +202,7 @@ static void lib3270_session_init(H3270 *hSession, const char *model)
198 hSession->set_width = nop_int; 202 hSession->set_width = nop_int;
199 hSession->update_status = (void (*)(H3270 *, LIB3270_STATUS)) nop_int; 203 hSession->update_status = (void (*)(H3270 *, LIB3270_STATUS)) nop_int;
200 hSession->autostart = nop; 204 hSession->autostart = nop;
  205 + hSession->set_timer = set_timer;
201 206
202 // Set the defaults. 207 // Set the defaults.
203 hSession->extended = 1; 208 hSession->extended = 1;
src/pw3270/uiparser/action.c
@@ -140,18 +140,6 @@ @@ -140,18 +140,6 @@
140 dt->keypad[dt->pos++] = widget; 140 dt->keypad[dt->pos++] = widget;
141 } 141 }
142 142
143 - static void disable_keypad(GtkWidget *terminal, GtkWidget **keypad)  
144 - {  
145 - while(*keypad)  
146 - gtk_widget_set_sensitive(*(keypad++),FALSE);  
147 - }  
148 -  
149 - static void enable_keypad(GtkWidget *terminal, const gchar *dunno, GtkWidget **keypad)  
150 - {  
151 - while(*keypad)  
152 - gtk_widget_set_sensitive(*(keypad++),TRUE);  
153 - }  
154 -  
155 void ui_setup_keypads(GHashTable *keypads, GtkWidget *window, GtkWidget *widget) 143 void ui_setup_keypads(GHashTable *keypads, GtkWidget *window, GtkWidget *widget)
156 { 144 {
157 struct list_data dt; 145 struct list_data dt;
@@ -166,8 +154,5 @@ @@ -166,8 +154,5 @@
166 dt.keypad = g_new0(GtkWidget *,dt.total+1); 154 dt.keypad = g_new0(GtkWidget *,dt.total+1);
167 g_hash_table_foreach(keypads,(GHFunc) insert_keypad, &dt); 155 g_hash_table_foreach(keypads,(GHFunc) insert_keypad, &dt);
168 156
169 - g_signal_connect(widget,"disconnected",G_CALLBACK(disable_keypad),dt.keypad);  
170 - g_signal_connect(widget,"connected",G_CALLBACK(enable_keypad),dt.keypad);  
171 -  
172 - g_object_set_data_full(G_OBJECT(widget),"keypads",dt.keypad,g_free); 157 + g_object_set_data_full(G_OBJECT(window),"keypads",dt.keypad,g_free);
173 } 158 }
src/pw3270/window.c
@@ -182,6 +182,7 @@ @@ -182,6 +182,7 @@
182 182
183 if(host) 183 if(host)
184 { 184 {
  185 + set_string_to_config("host","uri","%s",host);
185 pw3270_set_host(widget,host); 186 pw3270_set_host(widget,host);
186 } 187 }
187 else 188 else
@@ -318,7 +319,8 @@ @@ -318,7 +319,8 @@
318 319
319 static void disconnected(GtkWidget *terminal, GtkWidget * window) 320 static void disconnected(GtkWidget *terminal, GtkWidget * window)
320 { 321 {
321 - GtkActionGroup **group = g_object_get_data(G_OBJECT(window),"action_groups"); 322 + GtkActionGroup **group = g_object_get_data(G_OBJECT(window),"action_groups");
  323 + GtkWidget **keypad = g_object_get_data(G_OBJECT(window),"keypads");
322 324
323 if(group) 325 if(group)
324 { 326 {
@@ -327,13 +329,20 @@ @@ -327,13 +329,20 @@
327 gtk_action_group_set_sensitive(group[ACTION_GROUP_OFFLINE],TRUE); 329 gtk_action_group_set_sensitive(group[ACTION_GROUP_OFFLINE],TRUE);
328 } 330 }
329 331
  332 + if(keypad)
  333 + {
  334 + while(*keypad)
  335 + gtk_widget_set_sensitive(*(keypad++),FALSE);
  336 + }
  337 +
330 gtk_window_set_title(GTK_WINDOW(window),v3270_get_session_name(terminal)); 338 gtk_window_set_title(GTK_WINDOW(window),v3270_get_session_name(terminal));
331 } 339 }
332 340
333 static void connected(GtkWidget *terminal, const gchar *host, GtkWidget * window) 341 static void connected(GtkWidget *terminal, const gchar *host, GtkWidget * window)
334 { 342 {
335 gchar * title; 343 gchar * title;
336 - GtkActionGroup **group = g_object_get_data(G_OBJECT(window),"action_groups"); 344 + GtkActionGroup **group = g_object_get_data(G_OBJECT(window),"action_groups");
  345 + GtkWidget **keypad = g_object_get_data(G_OBJECT(window),"keypads");
337 346
338 if(group) 347 if(group)
339 { 348 {
@@ -342,6 +351,12 @@ @@ -342,6 +351,12 @@
342 gtk_action_group_set_sensitive(group[ACTION_GROUP_PASTE],TRUE); 351 gtk_action_group_set_sensitive(group[ACTION_GROUP_PASTE],TRUE);
343 } 352 }
344 353
  354 + if(keypad)
  355 + {
  356 + while(*keypad)
  357 + gtk_widget_set_sensitive(*(keypad++),TRUE);
  358 + }
  359 +
345 set_string_to_config("host","uri","%s",host); 360 set_string_to_config("host","uri","%s",host);
346 361
347 title = g_strdup_printf("%s - %s",v3270_get_session_name(terminal),host); 362 title = g_strdup_printf("%s - %s",v3270_get_session_name(terminal),host);