diff --git a/src/include/v3270.h b/src/include/v3270.h index 078658a..d40e631 100644 --- a/src/include/v3270.h +++ b/src/include/v3270.h @@ -246,7 +246,6 @@ LIB3270_EXPORT void v3270_remap_from_xml(GtkWidget *widget, const gchar *path); // Keyboard & Mouse special actions - LIB3270_EXPORT gboolean v3270_set_keyboard_action(GtkWidget *widget, const gchar *key_name, GtkAction *action); LIB3270_EXPORT void v3270_set_scroll_action(GtkWidget *widget, GdkScrollDirection direction, GtkAction *action); // SSL & Security diff --git a/src/terminal/keyboard.c b/src/terminal/keyboard.c index 31af866..57b0ec4 100644 --- a/src/terminal/keyboard.c +++ b/src/terminal/keyboard.c @@ -54,9 +54,6 @@ #define GDK_NUMLOCK_MASK GDK_MOD2_MASK #endif -#pragma GCC diagnostic ignored "-Wdeprecated-declarations" -#pragma GCC diagnostic ignored "-Wsign-compare" - /*--[ Globals ]--------------------------------------------------------------------------------------*/ static struct _keycode @@ -64,37 +61,36 @@ guint keyval; GdkModifierType state; int (*exec)(H3270 *session); - GtkAction * action; } keycode[] = { - { GDK_Left, 0, lib3270_cursor_left, NULL }, - { GDK_Up, 0, lib3270_cursor_up, NULL }, - { GDK_Right, 0, lib3270_cursor_right, NULL }, - { GDK_Down, 0, lib3270_cursor_down, NULL }, - { GDK_Tab, 0, lib3270_nextfield, NULL }, - { GDK_ISO_Left_Tab, GDK_SHIFT_MASK, lib3270_previousfield, NULL }, - { GDK_KP_Left, 0, lib3270_cursor_left, NULL }, - { GDK_KP_Up, 0, lib3270_cursor_up, NULL }, - { GDK_KP_Right, 0, lib3270_cursor_right, NULL }, - { GDK_KP_Down, 0, lib3270_cursor_down, NULL }, - - { GDK_KP_Add, GDK_NUMLOCK_MASK, NULL, NULL }, - { GDK_KP_Subtract, GDK_NUMLOCK_MASK, NULL, NULL }, - - { GDK_3270_PrintScreen, 0, lib3270_print_all, NULL }, - { GDK_P, GDK_CONTROL_MASK, lib3270_print_all, NULL }, - - { GDK_Sys_Req, 0, lib3270_sysreq, NULL }, - - { GDK_Print, GDK_CONTROL_MASK, lib3270_print_all, NULL }, - { GDK_Print, GDK_SHIFT_MASK, lib3270_sysreq, NULL }, - { GDK_Control_R, 0, NULL, NULL }, - { GDK_Control_L, 0, NULL, NULL }, - - -#ifdef WIN32 - { GDK_Pause, 0, NULL, NULL }, -#endif + { GDK_Left, 0, lib3270_cursor_left }, + { GDK_Up, 0, lib3270_cursor_up }, + { GDK_Right, 0, lib3270_cursor_right }, + { GDK_Down, 0, lib3270_cursor_down }, + { GDK_Tab, 0, lib3270_nextfield }, + { GDK_ISO_Left_Tab, GDK_SHIFT_MASK, lib3270_previousfield }, + { GDK_KP_Left, 0, lib3270_cursor_left }, + { GDK_KP_Up, 0, lib3270_cursor_up }, + { GDK_KP_Right, 0, lib3270_cursor_right }, + { GDK_KP_Down, 0, lib3270_cursor_down }, + +// { GDK_KP_Add, GDK_NUMLOCK_MASK, NULL }, +// { GDK_KP_Subtract, GDK_NUMLOCK_MASK, NULL }, + + { GDK_3270_PrintScreen, 0, lib3270_print_all }, + { GDK_P, GDK_CONTROL_MASK, lib3270_print_all }, + + { GDK_Sys_Req, 0, lib3270_sysreq }, + + { GDK_Print, GDK_CONTROL_MASK, lib3270_print_all }, + { GDK_Print, GDK_SHIFT_MASK, lib3270_sysreq }, +// { GDK_Control_R, 0, NULL }, +// { GDK_Control_L, 0, NULL }, + + +//#ifdef WIN32 +// { GDK_Pause, 0, NULL }, +//#endif }; /*--[ Implement ]------------------------------------------------------------------------------------*/ @@ -127,9 +123,9 @@ static gboolean check_keypress(v3270 *widget, GdkEventKey *event) { - int f; - int state = event->state & (GDK_SHIFT_MASK|GDK_CONTROL_MASK|GDK_ALT_MASK); - gboolean handled = FALSE; + int f; + GdkModifierType state = event->state & (GDK_SHIFT_MASK|GDK_CONTROL_MASK|GDK_ALT_MASK); + gboolean handled = FALSE; #ifdef WIN32 // FIXME (perry#1#): Find a better way! @@ -142,6 +138,7 @@ #endif g_signal_emit(GTK_WIDGET(widget), v3270_widget_signal[SIGNAL_KEYPRESS], 0, event->keyval, state, &handled); + debug("Keyboard action was %s",handled ? "Handled" : "Not handled"); if(handled) return TRUE; @@ -160,9 +157,7 @@ { if(keycode[f].keyval == event->keyval && state == keycode[f].state) { - if(keycode[f].action) - gtk_action_activate(keycode[f].action); - else if(keycode[f].exec) + if(keycode[f].exec) keycode[f].exec(widget->host); else return FALSE; @@ -174,28 +169,6 @@ return FALSE; } - LIB3270_EXPORT gboolean v3270_set_keyboard_action(GtkWidget *widget, const gchar *key_name, GtkAction *action) - { - guint keyval; - GdkModifierType state; - int f; - - g_return_val_if_fail(GTK_IS_V3270(widget),FALSE); - - gtk_accelerator_parse(key_name,&keyval,&state); - - for(f=0; f < (int) G_N_ELEMENTS(keycode);f++) - { - if(keycode[f].keyval == keyval && keycode[f].state == state) - { - keycode[f].action = action; - return TRUE; - } - } - - return FALSE; - } - gboolean v3270_key_press_event(GtkWidget *widget, GdkEventKey *event) { v3270 * terminal = GTK_V3270(widget); diff --git a/src/terminal/marshal b/src/terminal/marshal index 729551b..c19c501 100644 --- a/src/terminal/marshal +++ b/src/terminal/marshal @@ -5,7 +5,7 @@ VOID:VOID,POINTER VOID:POINTER VOID:VOID,POINTER,POINTER VOID:VOID,UINT,POINTER -BOOLEAN:VOID,UINT,ENUM +BOOLEAN:UINT,ENUM VOID:VOID,BOOLEAN BOOLEAN:VOID,BOOLEAN,BOOLEAN,POINTER VOID:VOID,UINT,UINT diff --git a/src/terminal/private.h b/src/terminal/private.h index 7427a36..d96eae0 100644 --- a/src/terminal/private.h +++ b/src/terminal/private.h @@ -49,7 +49,6 @@ G_BEGIN_DECLS void (*toggle_changed)(v3270 *widget,LIB3270_TOGGLE toggle_id,gboolean toggle_state,const gchar *toggle_name); void (*message_changed)(v3270 *widget, LIB3270_MESSAGE id); void (*popup_message)(GtkWidget *widget, LIB3270_NOTIFY id , const gchar *title, const gchar *message, const gchar *text); - gboolean (*keypress)(GtkWidget *widget,guint keyval,GdkModifierType state); }; diff --git a/src/terminal/widget.c b/src/terminal/widget.c index 8b8142e..7303ce4 100644 --- a/src/terminal/widget.c +++ b/src/terminal/widget.c @@ -235,13 +235,6 @@ static void finalize(GObject *object) G_OBJECT_CLASS(v3270_parent_class)->finalize(object); } -static gboolean signal_keypress(GtkWidget *widget,guint keyval, GdkModifierType state) -{ -// debug("v3270::%s",__FUNCTION__); - - return FALSE; -} - static void v3270_class_init(v3270Class *klass) { GObjectClass * gobject_class = G_OBJECT_CLASS(klass); @@ -253,9 +246,6 @@ static void v3270_class_init(v3270Class *klass) lib3270_set_log_handler(loghandler); - // V3270 methods - klass->keypress = signal_keypress; - // Object methods gobject_class->finalize = finalize; @@ -376,9 +366,9 @@ static void v3270_class_init(v3270Class *klass) g_signal_new( "keypress", G_OBJECT_CLASS_TYPE (gobject_class), G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET (v3270Class, keypress), + 0, NULL, NULL, - v3270_BOOLEAN__VOID_UINT_ENUM, + v3270_BOOLEAN__UINT_ENUM, G_TYPE_BOOLEAN, 2, G_TYPE_UINT, G_TYPE_UINT); v3270_widget_signal[SIGNAL_CONNECTED] = -- libgit2 0.21.2