Commit 70cc9160b610bf309adbdaf199fe610039211ec6
1 parent
51f5abc6
Exists in
master
and in
3 other branches
Adding method to disable the "lock on operator error" feature.
Showing
4 changed files
with
23 additions
and
3 deletions
Show diff stats
src/core/keyboard/kybd.c
| @@ -420,6 +420,8 @@ void kybd_in3270(H3270 *hSession, int GNUC_UNUSED(in3270), void GNUC_UNUSED(*dun | @@ -420,6 +420,8 @@ void kybd_in3270(H3270 *hSession, int GNUC_UNUSED(in3270), void GNUC_UNUSED(*dun | ||
| 420 | 420 | ||
| 421 | /** | 421 | /** |
| 422 | * @brief Lock the keyboard because of an operator error. | 422 | * @brief Lock the keyboard because of an operator error. |
| 423 | + * | ||
| 424 | + * @see lib3270_set_lock_on_operator_error | ||
| 423 | */ | 425 | */ |
| 424 | void operator_error(H3270 *hSession, int error_type) | 426 | void operator_error(H3270 *hSession, int error_type) |
| 425 | { | 427 | { |
| @@ -2258,3 +2260,7 @@ LIB3270_EXPORT LIB3270_KEYBOARD_LOCK_STATE lib3270_wait_for_keyboard_unlock(H327 | @@ -2258,3 +2260,7 @@ LIB3270_EXPORT LIB3270_KEYBOARD_LOCK_STATE lib3270_wait_for_keyboard_unlock(H327 | ||
| 2258 | return (LIB3270_KEYBOARD_LOCK_STATE) hSession->kybdlock; | 2260 | return (LIB3270_KEYBOARD_LOCK_STATE) hSession->kybdlock; |
| 2259 | } | 2261 | } |
| 2260 | 2262 | ||
| 2263 | +LIB3270_EXPORT void lib3270_set_lock_on_operator_error(H3270 *hSession, int enable) | ||
| 2264 | +{ | ||
| 2265 | + hSession->oerr_lock = (enable ? 1 : 0); | ||
| 2266 | +} |
src/core/sf.c
src/include/lib3270-internals.h
| @@ -365,11 +365,11 @@ struct _h3270 | @@ -365,11 +365,11 @@ struct _h3270 | ||
| 365 | int extended : 1; | 365 | int extended : 1; |
| 366 | int typeahead : 1; | 366 | int typeahead : 1; |
| 367 | int numeric_lock : 1; | 367 | int numeric_lock : 1; |
| 368 | - int oerr_lock : 1; | ||
| 369 | - int unlock_delay : 1; | 368 | + int oerr_lock : 1; ///< @brief If true, operator errors will lock the keyboard. |
| 369 | + int unlock_delay : 1; ///< @brief If true the unlock delay feature is enabled. @see lib3270_set_unlock_delay | ||
| 370 | int auto_reconnect_inprogress : 1; | 370 | int auto_reconnect_inprogress : 1; |
| 371 | unsigned int colors : 5; | 371 | unsigned int colors : 5; |
| 372 | - int apl_mode : 1; | 372 | + int apl_mode : 1; ///< @brief If true enables APL mode. |
| 373 | int icrnl : 1; | 373 | int icrnl : 1; |
| 374 | int inlcr : 1; | 374 | int inlcr : 1; |
| 375 | int onlcr : 1; | 375 | int onlcr : 1; |
src/include/lib3270/keyboard.h
| @@ -71,6 +71,19 @@ | @@ -71,6 +71,19 @@ | ||
| 71 | 71 | ||
| 72 | LIB3270_EXPORT LIB3270_KEYBOARD_LOCK_STATE lib3270_get_keyboard_lock_state(H3270 *hSession); | 72 | LIB3270_EXPORT LIB3270_KEYBOARD_LOCK_STATE lib3270_get_keyboard_lock_state(H3270 *hSession); |
| 73 | 73 | ||
| 74 | + /** | ||
| 75 | + * @brief Set te operator error lock. | ||
| 76 | + * | ||
| 77 | + * If lock is enabled (the default), operator errors (typing into protected fields, insert overflow, etc.) | ||
| 78 | + * will cause the keyboard to lock with an error message in the OIA (status line). If disabled, these errors | ||
| 79 | + * will simply cause the terminal bell will ring, without any keyboard lock or message. | ||
| 80 | + * | ||
| 81 | + * @param hSession Session handle. | ||
| 82 | + * @param enable Non zero to enable operator lock, zero to disable. | ||
| 83 | + * | ||
| 84 | + */ | ||
| 85 | + LIB3270_EXPORT void lib3270_set_lock_on_operator_error(H3270 *hSession, int enable); | ||
| 86 | + | ||
| 74 | #ifdef __cplusplus | 87 | #ifdef __cplusplus |
| 75 | } | 88 | } |
| 76 | #endif | 89 | #endif |