Commit af7a64048a350941804d0a4027b6eaa9e85fa810

Authored by Perry Werneck
1 parent 526ed500
Exists in master and in 1 other branch develop

Moving OIA updates to IDLE queue.

src/trace/trace.c
@@ -43,6 +43,8 @@ @@ -43,6 +43,8 @@
43 #include <syslog.h> 43 #include <syslog.h>
44 #endif // HAVE_SYSLOG 44 #endif // HAVE_SYSLOG
45 45
  46 +#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
  47 +
46 /*--[ Widget definition ]----------------------------------------------------------------------------*/ 48 /*--[ Widget definition ]----------------------------------------------------------------------------*/
47 49
48 G_BEGIN_DECLS 50 G_BEGIN_DECLS
src/v3270/mouse.c
@@ -228,11 +228,6 @@ static void update_mouse_pointer(GtkWidget *widget, int baddr) @@ -228,11 +228,6 @@ static void update_mouse_pointer(GtkWidget *widget, int baddr)
228 void v3270_update_mouse_pointer(GtkWidget *widget) 228 void v3270_update_mouse_pointer(GtkWidget *widget)
229 { 229 {
230 gint x, y; 230 gint x, y;
231 -  
232 -#if GTK_CHECK_VERSION(3,4,0)  
233 - #warning Implement gdk_window_get_device_position  
234 -#endif // GTK(3,4,0)  
235 -  
236 gtk_widget_get_pointer(widget,&x,&y); 231 gtk_widget_get_pointer(widget,&x,&y);
237 update_mouse_pointer(widget,v3270_get_offset_at_point(GTK_V3270(widget),x,y)); 232 update_mouse_pointer(widget,v3270_get_offset_at_point(GTK_V3270(widget),x,y));
238 } 233 }
src/v3270/oia.c
@@ -1091,16 +1091,16 @@ void v3270_blink_ssl(v3270 *terminal) @@ -1091,16 +1091,16 @@ void v3270_blink_ssl(v3270 *terminal)
1091 1091
1092 } 1092 }
1093 1093
1094 -void v3270_update_oia(H3270 *session, LIB3270_FLAG id, unsigned char on) 1094 +void v3270_update_oia(v3270 *terminal, LIB3270_FLAG id, unsigned char on)
1095 { 1095 {
1096 cairo_t *cr; 1096 cairo_t *cr;
1097 GdkRectangle *r; 1097 GdkRectangle *r;
1098 1098
1099 - v3270 *terminal = GTK_V3270(lib3270_get_user_data(session));  
1100 -  
1101 if(!(terminal->surface && terminal->drawing)) 1099 if(!(terminal->surface && terminal->drawing))
1102 return; 1100 return;
1103 1101
  1102 + #pragma GCC diagnostic push
  1103 + #pragma GCC diagnostic ignored "-Wswitch"
1104 switch(id) 1104 switch(id)
1105 { 1105 {
1106 case LIB3270_FLAG_BOXSOLID: 1106 case LIB3270_FLAG_BOXSOLID:
@@ -1141,14 +1141,11 @@ void v3270_update_oia(H3270 *session, LIB3270_FLAG id, unsigned char on) @@ -1141,14 +1141,11 @@ void v3270_update_oia(H3270 *session, LIB3270_FLAG id, unsigned char on)
1141 break; 1141 break;
1142 */ 1142 */
1143 1143
1144 - default:  
1145 - return;  
1146 } 1144 }
  1145 + #pragma GCC diagnostic pop
1147 1146
1148 - debug("%s",__FUNCTION__);  
1149 } 1147 }
1150 1148
1151 -  
1152 int v3270_set_script(GtkWidget *widget, const gchar id) 1149 int v3270_set_script(GtkWidget *widget, const gchar id)
1153 { 1150 {
1154 g_return_val_if_fail(GTK_IS_V3270(widget),EINVAL); 1151 g_return_val_if_fail(GTK_IS_V3270(widget),EINVAL);
src/v3270/private.h
@@ -330,7 +330,7 @@ G_GNUC_INTERNAL void v3270_update_cursor_rect(v3270 *widget, GdkRectangle *re @@ -330,7 +330,7 @@ G_GNUC_INTERNAL void v3270_update_cursor_rect(v3270 *widget, GdkRectangle *re
330 330
331 G_GNUC_INTERNAL void v3270_update_message(v3270 *widget, LIB3270_MESSAGE id); 331 G_GNUC_INTERNAL void v3270_update_message(v3270 *widget, LIB3270_MESSAGE id);
332 G_GNUC_INTERNAL void v3270_update_cursor(H3270 *session, unsigned short row, unsigned short col, unsigned char c, unsigned short attr); 332 G_GNUC_INTERNAL void v3270_update_cursor(H3270 *session, unsigned short row, unsigned short col, unsigned char c, unsigned short attr);
333 -G_GNUC_INTERNAL void v3270_update_oia(H3270 *session, LIB3270_FLAG id, unsigned char on); 333 +G_GNUC_INTERNAL void v3270_update_oia(v3270 *terminal, LIB3270_FLAG id, unsigned char on);
334 334
335 G_GNUC_INTERNAL void v3270_blink_ssl(v3270 *terminal); 335 G_GNUC_INTERNAL void v3270_blink_ssl(v3270 *terminal);
336 336
src/v3270/widget.c
@@ -957,6 +957,28 @@ static void popup_handler(H3270 *session, LIB3270_NOTIFY type, const char *title @@ -957,6 +957,28 @@ static void popup_handler(H3270 *session, LIB3270_NOTIFY type, const char *title
957 957
958 const gchar * v3270_default_font = "monospace"; 958 const gchar * v3270_default_font = "monospace";
959 959
  960 + struct update_oia_data
  961 + {
  962 + H3270 *session;
  963 + LIB3270_FLAG id;
  964 + unsigned char on;
  965 + };
  966 +
  967 + static gboolean bg_update_oia(struct update_oia_data *data)
  968 + {
  969 + v3270_update_oia(GTK_V3270(lib3270_get_user_data(data->session)), data->id, data->on);
  970 + return FALSE;
  971 + }
  972 +
  973 + static void update_oia(H3270 *session, LIB3270_FLAG id, unsigned char on)
  974 + {
  975 + struct update_oia_data *data = g_new0(struct update_oia_data,1);
  976 + data->session = session;
  977 + data->id = id;
  978 + data->on = on;
  979 + g_idle_add_full(G_PRIORITY_DEFAULT_IDLE,(GSourceFunc) bg_update_oia, data, g_free);
  980 + }
  981 +
960 static void v3270_init(v3270 *widget) 982 static void v3270_init(v3270 *widget)
961 { 983 {
962 struct lib3270_session_callbacks *cbk; 984 struct lib3270_session_callbacks *cbk;
@@ -986,7 +1008,7 @@ static void popup_handler(H3270 *session, LIB3270_NOTIFY type, const char *title @@ -986,7 +1008,7 @@ static void popup_handler(H3270 *session, LIB3270_NOTIFY type, const char *title
986 cbk->update_status = update_message; 1008 cbk->update_status = update_message;
987 cbk->update_cursor = v3270_update_cursor; 1009 cbk->update_cursor = v3270_update_cursor;
988 cbk->update_toggle = update_toggle; 1010 cbk->update_toggle = update_toggle;
989 - cbk->update_oia = v3270_update_oia; 1011 + cbk->update_oia = update_oia;
990 cbk->cursor = select_cursor; 1012 cbk->cursor = select_cursor;
991 cbk->update_connect = update_connect; 1013 cbk->update_connect = update_connect;
992 cbk->update_model = update_model; 1014 cbk->update_model = update_model;