| 
																	
																	
																		
																	
																	
																 | 
																@@ -1066,34 +1066,15 @@ protected: | 
															
														
														
													
														
															
																 | 
																 | 
																        const int action = ev.press ? GLFW_PRESS : GLFW_RELEASE; | 
																 | 
																 | 
																        const int action = ev.press ? GLFW_PRESS : GLFW_RELEASE; | 
															
														
														
													
														
															
																 | 
																 | 
																        const int mods = glfwMods(ev.mod); | 
																 | 
																 | 
																        const int mods = glfwMods(ev.mod); | 
															
														
														
													
														
															
																 | 
																 | 
																
  | 
																 | 
																 | 
																
  | 
															
														
														
													
														
															
																 | 
																 | 
																        /* These are unsupported in pugl right now | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																        #define GLFW_KEY_KP_0               320 | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																        #define GLFW_KEY_KP_1               321 | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																        #define GLFW_KEY_KP_2               322 | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																        #define GLFW_KEY_KP_3               323 | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																        #define GLFW_KEY_KP_4               324 | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																        #define GLFW_KEY_KP_5               325 | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																        #define GLFW_KEY_KP_6               326 | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																        #define GLFW_KEY_KP_7               327 | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																        #define GLFW_KEY_KP_8               328 | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																        #define GLFW_KEY_KP_9               329 | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																        #define GLFW_KEY_KP_DECIMAL         330 | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																        #define GLFW_KEY_KP_DIVIDE          331 | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																        #define GLFW_KEY_KP_MULTIPLY        332 | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																        #define GLFW_KEY_KP_SUBTRACT        333 | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																        #define GLFW_KEY_KP_ADD             334 | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																        #define GLFW_KEY_KP_ENTER           335 | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																        #define GLFW_KEY_KP_EQUAL           336 | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																        */ | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																
  | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																        int key; | 
																 | 
																 | 
																        int key; | 
															
														
														
													
														
															
																 | 
																 | 
																        switch (ev.key) | 
																 | 
																 | 
																        switch (ev.key) | 
															
														
														
													
														
															
																 | 
																 | 
																        { | 
																 | 
																 | 
																        { | 
															
														
														
													
														
															
																 | 
																 | 
																        case '\r': key = GLFW_KEY_ENTER; break; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																        case '\t': key = GLFW_KEY_TAB; break; | 
																 | 
																 | 
																        case '\t': key = GLFW_KEY_TAB; break; | 
															
														
														
													
														
															
																 | 
																 | 
																        case kKeyBackspace: key = GLFW_KEY_BACKSPACE; break; | 
																 | 
																 | 
																        case kKeyBackspace: key = GLFW_KEY_BACKSPACE; break; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        case kKeyEnter: key = GLFW_KEY_ENTER; break; | 
															
														
														
													
														
															
																 | 
																 | 
																        case kKeyEscape: key = GLFW_KEY_ESCAPE; break; | 
																 | 
																 | 
																        case kKeyEscape: key = GLFW_KEY_ESCAPE; break; | 
															
														
														
													
														
															
																 | 
																 | 
																        case kKeyDelete: key = GLFW_KEY_DELETE; break; | 
																 | 
																 | 
																        case kKeyDelete: key = GLFW_KEY_DELETE; break; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        case kKeySpace: key = GLFW_KEY_SPACE; break; | 
															
														
														
													
														
															
																 | 
																 | 
																        case kKeyF1: key = GLFW_KEY_F1; break; | 
																 | 
																 | 
																        case kKeyF1: key = GLFW_KEY_F1; break; | 
															
														
														
													
														
															
																 | 
																 | 
																        case kKeyF2: key = GLFW_KEY_F2; break; | 
																 | 
																 | 
																        case kKeyF2: key = GLFW_KEY_F2; break; | 
															
														
														
													
														
															
																 | 
																 | 
																        case kKeyF3: key = GLFW_KEY_F3; break; | 
																 | 
																 | 
																        case kKeyF3: key = GLFW_KEY_F3; break; | 
															
														
														
													
												
													
														
															
																| 
																	
																	
																	
																		
																	
																 | 
																@@ -1106,15 +1087,21 @@ protected: | 
															
														
														
													
														
															
																 | 
																 | 
																        case kKeyF10: key = GLFW_KEY_F10; break; | 
																 | 
																 | 
																        case kKeyF10: key = GLFW_KEY_F10; break; | 
															
														
														
													
														
															
																 | 
																 | 
																        case kKeyF11: key = GLFW_KEY_F11; break; | 
																 | 
																 | 
																        case kKeyF11: key = GLFW_KEY_F11; break; | 
															
														
														
													
														
															
																 | 
																 | 
																        case kKeyF12: key = GLFW_KEY_F12; break; | 
																 | 
																 | 
																        case kKeyF12: key = GLFW_KEY_F12; break; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        case kKeyPageUp: key = GLFW_KEY_PAGE_UP; break; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        case kKeyPageDown: key = GLFW_KEY_PAGE_DOWN; break; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        case kKeyEnd: key = GLFW_KEY_END; break; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        case kKeyHome: key = GLFW_KEY_HOME; break; | 
															
														
														
													
														
															
																 | 
																 | 
																        case kKeyLeft: key = GLFW_KEY_LEFT; break; | 
																 | 
																 | 
																        case kKeyLeft: key = GLFW_KEY_LEFT; break; | 
															
														
														
													
														
															
																 | 
																 | 
																        case kKeyUp: key = GLFW_KEY_UP; break; | 
																 | 
																 | 
																        case kKeyUp: key = GLFW_KEY_UP; break; | 
															
														
														
													
														
															
																 | 
																 | 
																        case kKeyRight: key = GLFW_KEY_RIGHT; break; | 
																 | 
																 | 
																        case kKeyRight: key = GLFW_KEY_RIGHT; break; | 
															
														
														
													
														
															
																 | 
																 | 
																        case kKeyDown: key = GLFW_KEY_DOWN; break; | 
																 | 
																 | 
																        case kKeyDown: key = GLFW_KEY_DOWN; break; | 
															
														
														
													
														
															
																 | 
																 | 
																        case kKeyPageUp: key = GLFW_KEY_PAGE_UP; break; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																        case kKeyPageDown: key = GLFW_KEY_PAGE_DOWN; break; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																        case kKeyHome: key = GLFW_KEY_HOME; break; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																        case kKeyEnd: key = GLFW_KEY_END; break; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        case kKeyPrintScreen: key = GLFW_KEY_PRINT_SCREEN; break; | 
															
														
														
													
														
															
																 | 
																 | 
																        case kKeyInsert: key = GLFW_KEY_INSERT; break; | 
																 | 
																 | 
																        case kKeyInsert: key = GLFW_KEY_INSERT; break; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        case kKeyPause: key = GLFW_KEY_PAUSE; break; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        case kKeyMenu: key = GLFW_KEY_MENU; break; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        case kKeyNumLock: key = GLFW_KEY_NUM_LOCK; break; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        case kKeyScrollLock: key = GLFW_KEY_SCROLL_LOCK; break; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        case kKeyCapsLock: key = GLFW_KEY_CAPS_LOCK; break; | 
															
														
														
													
														
															
																 | 
																 | 
																        case kKeyShiftL: key = GLFW_KEY_LEFT_SHIFT; break; | 
																 | 
																 | 
																        case kKeyShiftL: key = GLFW_KEY_LEFT_SHIFT; break; | 
															
														
														
													
														
															
																 | 
																 | 
																        case kKeyShiftR: key = GLFW_KEY_RIGHT_SHIFT; break; | 
																 | 
																 | 
																        case kKeyShiftR: key = GLFW_KEY_RIGHT_SHIFT; break; | 
															
														
														
													
														
															
																 | 
																 | 
																        case kKeyControlL: key = GLFW_KEY_LEFT_CONTROL; break; | 
																 | 
																 | 
																        case kKeyControlL: key = GLFW_KEY_LEFT_CONTROL; break; | 
															
														
														
													
												
													
														
															
																| 
																	
																	
																	
																		
																	
																 | 
																@@ -1123,12 +1110,39 @@ protected: | 
															
														
														
													
														
															
																 | 
																 | 
																        case kKeyAltR: key = GLFW_KEY_RIGHT_ALT; break; | 
																 | 
																 | 
																        case kKeyAltR: key = GLFW_KEY_RIGHT_ALT; break; | 
															
														
														
													
														
															
																 | 
																 | 
																        case kKeySuperL: key = GLFW_KEY_LEFT_SUPER; break; | 
																 | 
																 | 
																        case kKeySuperL: key = GLFW_KEY_LEFT_SUPER; break; | 
															
														
														
													
														
															
																 | 
																 | 
																        case kKeySuperR: key = GLFW_KEY_RIGHT_SUPER; break; | 
																 | 
																 | 
																        case kKeySuperR: key = GLFW_KEY_RIGHT_SUPER; break; | 
															
														
														
													
														
															
																 | 
																 | 
																        case kKeyMenu: key = GLFW_KEY_MENU; break; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																        case kKeyCapsLock: key = GLFW_KEY_CAPS_LOCK; break; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																        case kKeyScrollLock: key = GLFW_KEY_SCROLL_LOCK; break; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																        case kKeyNumLock: key = GLFW_KEY_NUM_LOCK; break; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																        case kKeyPrintScreen: key = GLFW_KEY_PRINT_SCREEN; break; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																        case kKeyPause: key = GLFW_KEY_PAUSE; break; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        case kKeyPad0: key = GLFW_KEY_KP_0; break; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        case kKeyPad1: key = GLFW_KEY_KP_1; break; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        case kKeyPad2: key = GLFW_KEY_KP_2; break; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        case kKeyPad3: key = GLFW_KEY_KP_3; break; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        case kKeyPad4: key = GLFW_KEY_KP_4; break; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        case kKeyPad5: key = GLFW_KEY_KP_5; break; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        case kKeyPad6: key = GLFW_KEY_KP_6; break; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        case kKeyPad7: key = GLFW_KEY_KP_7; break; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        case kKeyPad8: key = GLFW_KEY_KP_8; break; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        case kKeyPad9: key = GLFW_KEY_KP_9; break; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        case kKeyPadEnter: key = GLFW_KEY_KP_ENTER; break; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        /* undefined in glfw | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        case kKeyPadPageUp: | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        case kKeyPadPageDown: | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        case kKeyPadEnd: | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        case kKeyPadHome: | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        case kKeyPadLeft: | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        case kKeyPadUp: | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        case kKeyPadRight: | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        case kKeyPadDown: | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        case kKeyPadClear: | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        case kKeyPadInsert: | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        case kKeyPadDelete: | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        */ | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        case kKeyPadEqual: key = GLFW_KEY_KP_EQUAL; break; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        case kKeyPadMultiply: key = GLFW_KEY_KP_MULTIPLY; break; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        case kKeyPadAdd: key = GLFW_KEY_KP_ADD; break; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        /* undefined in glfw | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        case kKeyPadSeparator: | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        */ | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        case kKeyPadSubtract: key = GLFW_KEY_KP_SUBTRACT; break; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        case kKeyPadDecimal: key = GLFW_KEY_KP_DECIMAL; break; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        case kKeyPadDivide: key = GLFW_KEY_KP_DIVIDE; break; | 
															
														
														
													
														
															
																 | 
																 | 
																        default: | 
																 | 
																 | 
																        default: | 
															
														
														
													
														
															
																 | 
																 | 
																            // glfw expects uppercase | 
																 | 
																 | 
																            // glfw expects uppercase | 
															
														
														
													
														
															
																 | 
																 | 
																            if (ev.key >= 'a' && ev.key <= 'z') | 
																 | 
																 | 
																            if (ev.key >= 'a' && ev.key <= 'z') | 
															
														
														
													
												
													
														
															
																| 
																	
																		
																	
																	
																	
																 | 
																
  |