Commit b13018e681ef852ac6238a1ad82442c618206519

Authored by perry.werneck@gmail.com
1 parent 70ad251f
Exists in master

Implementando atualizacao das flags da OIA e temporizador atraves da estrutura de controle de sessao

latest/src/include/lib3270/api.h
@@ -273,7 +273,7 @@ @@ -273,7 +273,7 @@
273 void (*configure)(H3270 *session, unsigned short rows, unsigned short cols); 273 void (*configure)(H3270 *session, unsigned short rows, unsigned short cols);
274 void (*update)(H3270 *session, int baddr, unsigned char c, unsigned short attr); 274 void (*update)(H3270 *session, int baddr, unsigned char c, unsigned short attr);
275 void (*update_cursor)(H3270 *session, unsigned short row, unsigned short col); 275 void (*update_cursor)(H3270 *session, unsigned short row, unsigned short col);
276 - void (*set_oia)(H3270 *session, OIA_FLAG id, unsigned char on); 276 + void (*update_oia)(H3270 *session, OIA_FLAG id, unsigned char on);
277 void (*set_timer)(H3270 *session, unsigned char on); 277 void (*set_timer)(H3270 *session, unsigned char on);
278 void (*update_luname)(H3270 *session, const char *name); 278 void (*update_luname)(H3270 *session, const char *name);
279 void (*update_status)(H3270 *session, LIB3270_STATUS id); 279 void (*update_status)(H3270 *session, LIB3270_STATUS id);
latest/src/lib/XtGlue.c
@@ -959,12 +959,21 @@ LIB3270_EXPORT int lib3270_in_e(H3270 *h) @@ -959,12 +959,21 @@ LIB3270_EXPORT int lib3270_in_e(H3270 *h)
959 959
960 LIB3270_EXPORT int lib3270_call_thread(int(*callback)(H3270 *h, void *), H3270 *h, void *parm) 960 LIB3270_EXPORT int lib3270_call_thread(int(*callback)(H3270 *h, void *), H3270 *h, void *parm)
961 { 961 {
  962 + int rc;
962 CHECK_SESSION_HANDLE(h); 963 CHECK_SESSION_HANDLE(h);
963 964
  965 + if(h->set_timer)
  966 + h->set_timer(h,1);
  967 +
964 if(callbacks->callthread) 968 if(callbacks->callthread)
965 - return callbacks->callthread(callback,h,parm); 969 + rc = callbacks->callthread(callback,h,parm);
966 else 970 else
967 - return callback(h,parm); 971 + rc = callback(h,parm);
  972 +
  973 + if(h->set_timer)
  974 + h->set_timer(h,0);
  975 +
  976 + return rc;
968 } 977 }
969 978
970 void RunPendingEvents(int wait) 979 void RunPendingEvents(int wait)
latest/src/lib/screen.c
@@ -133,7 +133,7 @@ int screen_init(H3270 *session) @@ -133,7 +133,7 @@ int screen_init(H3270 *session)
133 session->update_cursor = callbacks->move_cursor; 133 session->update_cursor = callbacks->move_cursor;
134 134
135 if(callbacks->set_oia) 135 if(callbacks->set_oia)
136 - session->set_oia = callbacks->set_oia; 136 + session->update_oia = callbacks->set_oia;
137 137
138 if(callbacks->set_viewsize) 138 if(callbacks->set_viewsize)
139 session->configure = callbacks->set_viewsize; 139 session->configure = callbacks->set_viewsize;
@@ -496,8 +496,8 @@ void set_status(H3270 *session, LIB3270_FLAG id, Boolean on) @@ -496,8 +496,8 @@ void set_status(H3270 *session, LIB3270_FLAG id, Boolean on)
496 { 496 {
497 session->oia_flag[id] = (on != 0); 497 session->oia_flag[id] = (on != 0);
498 498
499 - if(session->set_oia)  
500 - session->set_oia(session,id,on); 499 + if(session->update_oia)
  500 + session->update_oia(session,id,session->oia_flag[id]);
501 } 501 }
502 502
503 } 503 }