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 274 void (*update_luname)(H3270 *session, const char *name);
275 275 void (*update_status)(H3270 *session, LIB3270_STATUS id);
276 276 void (*update_connect)(H3270 *session, unsigned char connected);
  277 + void (*update_model)(H3270 *session, int model);
277 278  
278 279 void (*set_timer)(H3270 *session, unsigned char on);
279 280 void (*erase)(H3270 *session);
... ...
src/lib/ctlr.c
... ... @@ -193,15 +193,21 @@ int lib3270_get_model(H3270 *session)
193 193 /**
194 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 198 int lib3270_set_model(H3270 *session, int model)
199 199 {
200 200 if(CONNECTED)
201 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 211 return 0;
206 212 }
207 213  
... ...