diff options
| -rw-r--r-- | gtk/ScintillaGTK.cxx | 74 | 
1 files changed, 74 insertions, 0 deletions
diff --git a/gtk/ScintillaGTK.cxx b/gtk/ScintillaGTK.cxx index d121326c8..a67494678 100644 --- a/gtk/ScintillaGTK.cxx +++ b/gtk/ScintillaGTK.cxx @@ -1949,6 +1949,75 @@ gint ScintillaGTK::Motion(GtkWidget *widget, GdkEventMotion *event) {  // Map the keypad keys to their equivalent functions  static int KeyTranslate(int keyIn) {  	switch (keyIn) { +#if GTK_CHECK_VERSION(3,0,0) +	case GDK_KEY_ISO_Left_Tab: +		return SCK_TAB; +	case GDK_KEY_KP_Down: +		return SCK_DOWN; +	case GDK_KEY_KP_Up: +		return SCK_UP; +	case GDK_KEY_KP_Left: +		return SCK_LEFT; +	case GDK_KEY_KP_Right: +		return SCK_RIGHT; +	case GDK_KEY_KP_Home: +		return SCK_HOME; +	case GDK_KEY_KP_End: +		return SCK_END; +	case GDK_KEY_KP_Page_Up: +		return SCK_PRIOR; +	case GDK_KEY_KP_Page_Down: +		return SCK_NEXT; +	case GDK_KEY_KP_Delete: +		return SCK_DELETE; +	case GDK_KEY_KP_Insert: +		return SCK_INSERT; +	case GDK_KEY_KP_Enter: +		return SCK_RETURN; + +	case GDK_KEY_Down: +		return SCK_DOWN; +	case GDK_KEY_Up: +		return SCK_UP; +	case GDK_KEY_Left: +		return SCK_LEFT; +	case GDK_KEY_Right: +		return SCK_RIGHT; +	case GDK_KEY_Home: +		return SCK_HOME; +	case GDK_KEY_End: +		return SCK_END; +	case GDK_KEY_Page_Up: +		return SCK_PRIOR; +	case GDK_KEY_Page_Down: +		return SCK_NEXT; +	case GDK_KEY_Delete: +		return SCK_DELETE; +	case GDK_KEY_Insert: +		return SCK_INSERT; +	case GDK_KEY_Escape: +		return SCK_ESCAPE; +	case GDK_KEY_BackSpace: +		return SCK_BACK; +	case GDK_KEY_Tab: +		return SCK_TAB; +	case GDK_KEY_Return: +		return SCK_RETURN; +	case GDK_KEY_KP_Add: +		return SCK_ADD; +	case GDK_KEY_KP_Subtract: +		return SCK_SUBTRACT; +	case GDK_KEY_KP_Divide: +		return SCK_DIVIDE; +	case GDK_KEY_Super_L: +		return SCK_WIN; +	case GDK_KEY_Super_R: +		return SCK_RWIN; +	case GDK_KEY_Menu: +		return SCK_MENU; + +#else +  	case GDK_ISO_Left_Tab:  		return SCK_TAB;  	case GDK_KP_Down: @@ -2014,6 +2083,7 @@ static int KeyTranslate(int keyIn) {  		return SCK_RWIN;  	case GDK_Menu:  		return SCK_MENU; +#endif  	default:  		return keyIn;  	} @@ -2036,7 +2106,11 @@ gboolean ScintillaGTK::KeyThis(GdkEventKey *event) {  		guint key = event->keyval;  		if (ctrl && (key < 128))  			key = toupper(key); +#if GTK_CHECK_VERSION(3,0,0) +		else if (!ctrl && (key >= GDK_KEY_KP_Multiply && key <= GDK_KEY_KP_9)) +#else  		else if (!ctrl && (key >= GDK_KP_Multiply && key <= GDK_KP_9)) +#endif  			key &= 0x7F;  		// Hack for keys over 256 and below command keys but makes Hungarian work.  		// This will have to change for Unicode  | 
