Commit 18458b60db7cc7a92886645e64bcf3febafc9c62
1 parent
9fb1746f
Exists in
master
and in
1 other branch
Fixing program message changes.
Showing
1 changed file
with
17 additions
and
6 deletions
Show diff stats
src/terminal/callbacks.c
| ... | ... | @@ -85,23 +85,34 @@ static void update_toggle(H3270 *session, LIB3270_TOGGLE_ID id, unsigned char va |
| 85 | 85 | v3270_update_toggle((GtkWidget *) lib3270_get_user_data(session), id, value, name); |
| 86 | 86 | } |
| 87 | 87 | |
| 88 | -static gboolean bg_update_message(H3270 *session) | |
| 88 | + | |
| 89 | +struct update_message_data | |
| 89 | 90 | { |
| 90 | - v3270 *terminal = (v3270 *) lib3270_get_user_data(session); | |
| 91 | + H3270 *hSession; | |
| 92 | + LIB3270_MESSAGE message; | |
| 93 | +}; | |
| 94 | + | |
| 95 | +static gboolean bg_update_message(struct update_message_data *data) | |
| 96 | +{ | |
| 97 | + v3270 *terminal = (v3270 *) lib3270_get_user_data(data->hSession); | |
| 91 | 98 | |
| 92 | 99 | v3270_signal_emit( |
| 93 | 100 | terminal, |
| 94 | 101 | V3270_SIGNAL_MESSAGE_CHANGED, |
| 95 | - (gint) lib3270_get_program_message(session) | |
| 102 | + (gint) data->message | |
| 96 | 103 | ); |
| 97 | 104 | |
| 98 | - //trace("-----B %s %p",__FUNCTION__, lib3270_get_user_data(session)); | |
| 105 | + g_free(data); | |
| 99 | 106 | return FALSE; |
| 100 | 107 | } |
| 101 | 108 | |
| 102 | -static void update_message(H3270 *session, G_GNUC_UNUSED LIB3270_MESSAGE id) | |
| 109 | +static void update_message(H3270 *hSession, LIB3270_MESSAGE message) | |
| 103 | 110 | { |
| 104 | - g_idle_add((GSourceFunc) bg_update_message, session); | |
| 111 | + struct update_message_data *data = g_new0(struct update_message_data,1); | |
| 112 | + data->hSession = hSession; | |
| 113 | + data->message = message; | |
| 114 | + | |
| 115 | + g_idle_add((GSourceFunc) bg_update_message, data); | |
| 105 | 116 | } |
| 106 | 117 | |
| 107 | 118 | static void update_luname(H3270 *session, const char G_GNUC_UNUSED(*name)) | ... | ... |