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,23 +85,34 @@ static void update_toggle(H3270 *session, LIB3270_TOGGLE_ID id, unsigned char va | ||
85 | v3270_update_toggle((GtkWidget *) lib3270_get_user_data(session), id, value, name); | 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 | v3270_signal_emit( | 99 | v3270_signal_emit( |
93 | terminal, | 100 | terminal, |
94 | V3270_SIGNAL_MESSAGE_CHANGED, | 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 | return FALSE; | 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 | static void update_luname(H3270 *session, const char G_GNUC_UNUSED(*name)) | 118 | static void update_luname(H3270 *session, const char G_GNUC_UNUSED(*name)) |