Commit 18458b60db7cc7a92886645e64bcf3febafc9c62

Authored by Perry Werneck
1 parent 9fb1746f
Exists in master and in 1 other branch develop

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))
... ...