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,6 +55,7 @@
55 { 55 {
56 V3270PFKeyAccelerator * customAccel = g_new0(V3270PFKeyAccelerator,1); 56 V3270PFKeyAccelerator * customAccel = g_new0(V3270PFKeyAccelerator,1);
57 *customAccel = *((V3270PFKeyAccelerator *) accel); 57 *customAccel = *((V3270PFKeyAccelerator *) accel);
  58 + customAccel->parent.arg = (gconstpointer) customAccel;
58 rc = (V3270Accelerator *) customAccel; 59 rc = (V3270Accelerator *) customAccel;
59 } 60 }
60 break; 61 break;
@@ -105,6 +106,8 @@ @@ -105,6 +106,8 @@
105 { 106 {
106 int rc = ((int (*)(GtkWidget *, gconstpointer)) acel->activate)(terminal, acel->arg); 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 if(rc) 111 if(rc)
109 gdk_display_beep(gtk_widget_get_display(terminal)); 112 gdk_display_beep(gtk_widget_get_display(terminal));
110 113
src/terminal/keyboard/init.c
@@ -89,6 +89,14 @@ @@ -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 void v3270_init_accelerators(v3270 *widget) 100 void v3270_init_accelerators(v3270 *widget)
93 { 101 {
94 size_t ix; 102 size_t ix;
@@ -218,6 +226,8 @@ @@ -218,6 +226,8 @@
218 accelerator->parent.arg = (gconstpointer) accelerator; 226 accelerator->parent.arg = (gconstpointer) accelerator;
219 accelerator->parent.activate = G_CALLBACK(fire_pfkey_action); 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 widget->accelerators = g_slist_prepend(widget->accelerators,accelerator); 231 widget->accelerators = g_slist_prepend(widget->accelerators,accelerator);
222 232
223 } 233 }
src/terminal/keyboard/keyfile.c
@@ -89,11 +89,6 @@ @@ -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 void v3270_accelerator_map_set_entry(v3270 *terminal, const gchar *name, const gchar *keys) 92 void v3270_accelerator_map_set_entry(v3270 *terminal, const gchar *name, const gchar *keys)
98 { 93 {
99 V3270Accelerator * accel = NULL; 94 V3270Accelerator * accel = NULL;
src/terminal/keyboard/private.h
@@ -46,7 +46,6 @@ @@ -46,7 +46,6 @@
46 #define GDK_NUMLOCK_MASK GDK_MOD2_MASK 46 #define GDK_NUMLOCK_MASK GDK_MOD2_MASK
47 #endif 47 #endif
48 48
49 - G_GNUC_INTERNAL int fire_pfkey_action(GtkWidget *widget, V3270PFKeyAccelerator *accel);  
50 49
51 50
52 51