Commit 853ed0a3261910b724514240929aac5f989a129b

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

Implementando callback quando o modelo de terminal é alterado

Showing 2 changed files with 10 additions and 3 deletions   Show diff stats
src/include/lib3270/api.h
@@ -274,6 +274,7 @@ @@ -274,6 +274,7 @@
274 void (*update_luname)(H3270 *session, const char *name); 274 void (*update_luname)(H3270 *session, const char *name);
275 void (*update_status)(H3270 *session, LIB3270_STATUS id); 275 void (*update_status)(H3270 *session, LIB3270_STATUS id);
276 void (*update_connect)(H3270 *session, unsigned char connected); 276 void (*update_connect)(H3270 *session, unsigned char connected);
  277 + void (*update_model)(H3270 *session, int model);
277 278
278 void (*set_timer)(H3270 *session, unsigned char on); 279 void (*set_timer)(H3270 *session, unsigned char on);
279 void (*erase)(H3270 *session); 280 void (*erase)(H3270 *session);
src/lib/ctlr.c
@@ -193,15 +193,21 @@ int lib3270_get_model(H3270 *session) @@ -193,15 +193,21 @@ int lib3270_get_model(H3270 *session)
193 /** 193 /**
194 * Deal with the relationships between model numbers and rows/cols. 194 * Deal with the relationships between model numbers and rows/cols.
195 * 195 *
196 - * @param model New model (updates model name 196 + * @param model New model (updates model name)
197 */ 197 */
198 int lib3270_set_model(H3270 *session, int model) 198 int lib3270_set_model(H3270 *session, int model)
199 { 199 {
200 if(CONNECTED) 200 if(CONNECTED)
201 return EBUSY; 201 return EBUSY;
202 202
203 - ctlr_set_rows_cols(session,model,session->ov_cols,session->ov_rows);  
204 - ctlr_reinit(session,MODEL_CHANGE); 203 + if(session->model_num != model)
  204 + {
  205 + ctlr_set_rows_cols(session,model,session->ov_cols,session->ov_rows);
  206 + ctlr_reinit(session,MODEL_CHANGE);
  207 +
  208 + if(session->update_model)
  209 + session->update_model(session,model);
  210 + }
205 return 0; 211 return 0;
206 } 212 }
207 213