Commit 8c622e345a0bfa074e220513463d4b51160c12f9

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

Fixing segfault on page-down accelerator.

src/terminal/keyboard/accelerator.c
... ... @@ -55,6 +55,7 @@
55 55 {
56 56 V3270PFKeyAccelerator * customAccel = g_new0(V3270PFKeyAccelerator,1);
57 57 *customAccel = *((V3270PFKeyAccelerator *) accel);
  58 + customAccel->parent.arg = (gconstpointer) customAccel;
58 59 rc = (V3270Accelerator *) customAccel;
59 60 }
60 61 break;
... ... @@ -105,6 +106,8 @@
105 106 {
106 107 int rc = ((int (*)(GtkWidget *, gconstpointer)) acel->activate)(terminal, acel->arg);
107 108  
  109 + debug("%s(%s)=%d (%s)",__FUNCTION__,v3270_accelerator_get_name(acel),rc,strerror(rc));
  110 +
108 111 if(rc)
109 112 gdk_display_beep(gtk_widget_get_display(terminal));
110 113  
... ...
src/terminal/keyboard/init.c
... ... @@ -89,6 +89,14 @@
89 89  
90 90 }
91 91  
  92 + static int fire_pfkey_action(GtkWidget *widget, V3270PFKeyAccelerator *accel)
  93 + {
  94 + debug("%s accel=%p",__FUNCTION__,accel);
  95 + debug("%s Accelerator(%s)=%p pfkey=%d",__FUNCTION__,accel->name,accel,accel->keycode);
  96 +
  97 + return lib3270_pfkey(v3270_get_session(widget),(int) accel->keycode);
  98 + }
  99 +
92 100 void v3270_init_accelerators(v3270 *widget)
93 101 {
94 102 size_t ix;
... ... @@ -218,6 +226,8 @@
218 226 accelerator->parent.arg = (gconstpointer) accelerator;
219 227 accelerator->parent.activate = G_CALLBACK(fire_pfkey_action);
220 228  
  229 + debug("%s Accelerator(%s)=%p pfkey=%d",__FUNCTION__,accelerator->name,accelerator,accelerator->keycode);
  230 +
221 231 widget->accelerators = g_slist_prepend(widget->accelerators,accelerator);
222 232  
223 233 }
... ...
src/terminal/keyboard/keyfile.c
... ... @@ -89,11 +89,6 @@
89 89  
90 90 }
91 91  
92   - int fire_pfkey_action(GtkWidget *widget, V3270PFKeyAccelerator *accel)
93   - {
94   - return lib3270_pfkey(v3270_get_session(widget),(int) accel->keycode);
95   - }
96   -
97 92 void v3270_accelerator_map_set_entry(v3270 *terminal, const gchar *name, const gchar *keys)
98 93 {
99 94 V3270Accelerator * accel = NULL;
... ...
src/terminal/keyboard/private.h
... ... @@ -46,7 +46,6 @@
46 46 #define GDK_NUMLOCK_MASK GDK_MOD2_MASK
47 47 #endif
48 48  
49   - G_GNUC_INTERNAL int fire_pfkey_action(GtkWidget *widget, V3270PFKeyAccelerator *accel);
50 49  
51 50  
52 51  
... ...