Commit 853ed0a3261910b724514240929aac5f989a129b
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 |