| 
						
						
							
								
							
						
						
					 | 
					 | 
					@ -21,8 +21,14 @@ must not be misrepresented as being the original software.
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					3. This notice may not be removed or altered from any source
 | 
					 | 
					 | 
					 | 
					3. This notice may not be removed or altered from any source
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					distribution.
 | 
					 | 
					 | 
					 | 
					distribution.
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					*/
 | 
					 | 
					 | 
					 | 
					*/
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					#define LINUX_BUILD
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					#include "DFCommonInternal.h"
 | 
					 | 
					 | 
					 | 
					#include "DFCommonInternal.h"
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					#include <X11/Xlib.h>   //need for X11 functions
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					#include <X11/extensions/XTest.h> //need for Xtest
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					#include <X11/Xatom.h> //for the atom stuff
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					#define XK_MISCELLANY
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					#include <X11/keysymdef.h>
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					using namespace DFHack;
 | 
					 | 
					 | 
					 | 
					using namespace DFHack;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					// ENUMARATE THROUGH WINDOWS AND DISPLAY THEIR TITLES
 | 
					 | 
					 | 
					 | 
					// ENUMARATE THROUGH WINDOWS AND DISPLAY THEIR TITLES
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -232,389 +238,154 @@ void API::TypeSpecial (t_special command, int count, int delay)
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                {
 | 
					 | 
					 | 
					 | 
					                {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                    case ENTER:
 | 
					 | 
					 | 
					 | 
					                    case ENTER:
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        mykeysym = XStringToKeysym ("Return");
 | 
					 | 
					 | 
					 | 
					                        mykeysym = XStringToKeysym ("Return");
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        xkeycode = XKeysymToKeycode (dpy, mykeysym);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XTestFakeKeyEvent (dpy, xkeycode, true, CurrentTime);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XSync (dpy, true);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XTestFakeKeyEvent (dpy, xkeycode, false, CurrentTime);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XSync (dpy, true);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        break;
 | 
					 | 
					 | 
					 | 
					                        break;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                    case SPACE:
 | 
					 | 
					 | 
					 | 
					                    case SPACE:
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        mykeysym = XStringToKeysym ("space");
 | 
					 | 
					 | 
					 | 
					                        mykeysym = XStringToKeysym ("space");
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        xkeycode = XKeysymToKeycode (dpy, mykeysym);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XTestFakeKeyEvent (dpy, xkeycode, true, CurrentTime);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XSync (dpy, true);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XTestFakeKeyEvent (dpy, xkeycode, false, CurrentTime);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XSync (dpy, true);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        break;
 | 
					 | 
					 | 
					 | 
					                        break;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                    case BACK_SPACE:
 | 
					 | 
					 | 
					 | 
					                    case BACK_SPACE:
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        mykeysym = XStringToKeysym ("BackSpace");
 | 
					 | 
					 | 
					 | 
					                        mykeysym = XStringToKeysym ("BackSpace");
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        xkeycode = XK_BackSpace;
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        xkeycode = XKeysymToKeycode (dpy, XK_BackSpace);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XTestFakeKeyEvent (dpy, xkeycode, true, CurrentTime);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XSync (dpy, true);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XTestFakeKeyEvent (dpy, xkeycode, false, CurrentTime);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XSync (dpy, true);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        break;
 | 
					 | 
					 | 
					 | 
					                        break;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                    case TAB:
 | 
					 | 
					 | 
					 | 
					                    case TAB:
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        mykeysym = XStringToKeysym ("Tab");
 | 
					 | 
					 | 
					 | 
					                        mykeysym = XStringToKeysym ("Tab");
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        xkeycode = XKeysymToKeycode (dpy, mykeysym);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XTestFakeKeyEvent (dpy, xkeycode, true, CurrentTime);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XSync (dpy, true);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XTestFakeKeyEvent (dpy, xkeycode, false, CurrentTime);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XSync (dpy, true);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        break;
 | 
					 | 
					 | 
					 | 
					                        break;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                    case CAPS_LOCK:
 | 
					 | 
					 | 
					 | 
					                    case CAPS_LOCK:
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        mykeysym = XStringToKeysym ("Caps_Lock");
 | 
					 | 
					 | 
					 | 
					                        mykeysym = XStringToKeysym ("Caps_Lock");
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        xkeycode = XKeysymToKeycode (dpy, mykeysym);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XTestFakeKeyEvent (dpy, xkeycode, true, CurrentTime);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XSync (dpy, true);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XTestFakeKeyEvent (dpy, xkeycode, false, CurrentTime);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XSync (dpy, true);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        break;
 | 
					 | 
					 | 
					 | 
					                        break;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                    case LEFT_SHIFT: // I am not positive that this will work to distinguish the left and right..
 | 
					 | 
					 | 
					 | 
					                    case LEFT_SHIFT:
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        mykeysym = XStringToKeysym ("Shift_L");
 | 
					 | 
					 | 
					 | 
					                        mykeysym = XStringToKeysym ("Shift_L");
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        xkeycode = XKeysymToKeycode (dpy, mykeysym);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XTestFakeKeyEvent (dpy, xkeycode, true, CurrentTime);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XSync (dpy, true);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XTestFakeKeyEvent (dpy, xkeycode, false, CurrentTime);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XSync (dpy, true);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        break;
 | 
					 | 
					 | 
					 | 
					                        break;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                    case RIGHT_SHIFT:
 | 
					 | 
					 | 
					 | 
					                    case RIGHT_SHIFT:
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        mykeysym = XStringToKeysym ("Shift_R");
 | 
					 | 
					 | 
					 | 
					                        mykeysym = XStringToKeysym ("Shift_R");
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        xkeycode = XKeysymToKeycode (dpy, mykeysym);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XTestFakeKeyEvent (dpy, xkeycode, true, CurrentTime);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XSync (dpy, true);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XTestFakeKeyEvent (dpy, xkeycode, false, CurrentTime);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XSync (dpy, true);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        break;
 | 
					 | 
					 | 
					 | 
					                        break;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                    case LEFT_CONTROL:
 | 
					 | 
					 | 
					 | 
					                    case LEFT_CONTROL:
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        mykeysym = XStringToKeysym ("Control_L");
 | 
					 | 
					 | 
					 | 
					                        mykeysym = XStringToKeysym ("Control_L");
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        xkeycode = XKeysymToKeycode (dpy, mykeysym);
 | 
					 | 
					 | 
					 | 
					                        break;
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XTestFakeKeyEvent (dpy, xkeycode, true, CurrentTime);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XSync (dpy, true);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XTestFakeKeyEvent (dpy, xkeycode, false, CurrentTime);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XSync (dpy, true);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                    case RIGHT_CONTROL:
 | 
					 | 
					 | 
					 | 
					                    case RIGHT_CONTROL:
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        mykeysym = XStringToKeysym ("Control_R");
 | 
					 | 
					 | 
					 | 
					                        mykeysym = XStringToKeysym ("Control_R");
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        xkeycode = XKeysymToKeycode (dpy, mykeysym);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XTestFakeKeyEvent (dpy, xkeycode, true, CurrentTime);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XSync (dpy, true);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XTestFakeKeyEvent (dpy, xkeycode, false, CurrentTime);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XSync (dpy, true);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        break;
 | 
					 | 
					 | 
					 | 
					                        break;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                    case ALT:
 | 
					 | 
					 | 
					 | 
					                    case ALT:
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        mykeysym = XStringToKeysym ("Alt_L");
 | 
					 | 
					 | 
					 | 
					                        mykeysym = XStringToKeysym ("Alt_L");
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        xkeycode = XKeysymToKeycode (dpy, mykeysym);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XTestFakeKeyEvent (dpy, xkeycode, true, CurrentTime);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XSync (dpy, true);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XTestFakeKeyEvent (dpy, xkeycode, false, CurrentTime);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XSync (dpy, true);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        break;
 | 
					 | 
					 | 
					 | 
					                        break;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                    case ESCAPE:
 | 
					 | 
					 | 
					 | 
					                    case ESCAPE:
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        mykeysym = XStringToKeysym ("Escape");
 | 
					 | 
					 | 
					 | 
					                        mykeysym = XStringToKeysym ("Escape");
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        xkeycode = XKeysymToKeycode (dpy, mykeysym);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XTestFakeKeyEvent (dpy, xkeycode, true, CurrentTime);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XSync (dpy, true);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XTestFakeKeyEvent (dpy, xkeycode, false, CurrentTime);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XSync (dpy, true);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        break;
 | 
					 | 
					 | 
					 | 
					                        break;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                    case UP:
 | 
					 | 
					 | 
					 | 
					                    case UP:
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        mykeysym = XStringToKeysym ("Up");
 | 
					 | 
					 | 
					 | 
					                        mykeysym = XStringToKeysym ("Up");
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        xkeycode = XKeysymToKeycode (dpy, mykeysym);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XTestFakeKeyEvent (dpy, xkeycode, true, CurrentTime);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XSync (dpy, true);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XTestFakeKeyEvent (dpy, xkeycode, false, CurrentTime);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XSync (dpy, true);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        break;
 | 
					 | 
					 | 
					 | 
					                        break;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                    case DOWN:
 | 
					 | 
					 | 
					 | 
					                    case DOWN:
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        mykeysym = XStringToKeysym ("Down");
 | 
					 | 
					 | 
					 | 
					                        mykeysym = XStringToKeysym ("Down");
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        xkeycode = XKeysymToKeycode (dpy, mykeysym);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XTestFakeKeyEvent (dpy, xkeycode, true, CurrentTime);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XSync (dpy, true);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XTestFakeKeyEvent (dpy, xkeycode, false, CurrentTime);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XSync (dpy, true);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        break;
 | 
					 | 
					 | 
					 | 
					                        break;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                    case LEFT:
 | 
					 | 
					 | 
					 | 
					                    case LEFT:
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        mykeysym = XStringToKeysym ("Left");
 | 
					 | 
					 | 
					 | 
					                        mykeysym = XStringToKeysym ("Left");
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        xkeycode = XKeysymToKeycode (dpy, mykeysym);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XTestFakeKeyEvent (dpy, xkeycode, true, CurrentTime);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XSync (dpy, true);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XTestFakeKeyEvent (dpy, xkeycode, false, CurrentTime);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XSync (dpy, true);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        break;
 | 
					 | 
					 | 
					 | 
					                        break;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                    case RIGHT:
 | 
					 | 
					 | 
					 | 
					                    case RIGHT:
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        mykeysym = XStringToKeysym ("Right");
 | 
					 | 
					 | 
					 | 
					                        mykeysym = XStringToKeysym ("Right");
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        xkeycode = XKeysymToKeycode (dpy, mykeysym);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XTestFakeKeyEvent (dpy, xkeycode, true, CurrentTime);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XSync (dpy, true);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XTestFakeKeyEvent (dpy, xkeycode, false, CurrentTime);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XSync (dpy, true);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        break;
 | 
					 | 
					 | 
					 | 
					                        break;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                    case F1:
 | 
					 | 
					 | 
					 | 
					                    case F1:
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        mykeysym = XStringToKeysym ("F1");
 | 
					 | 
					 | 
					 | 
					                        mykeysym = XStringToKeysym ("F1");
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        xkeycode = XKeysymToKeycode (dpy, mykeysym);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XTestFakeKeyEvent (dpy, xkeycode, true, CurrentTime);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XSync (dpy, true);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XTestFakeKeyEvent (dpy, xkeycode, false, CurrentTime);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XSync (dpy, true);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        break;
 | 
					 | 
					 | 
					 | 
					                        break;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                    case F2:
 | 
					 | 
					 | 
					 | 
					                    case F2:
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        mykeysym = XStringToKeysym ("F2");
 | 
					 | 
					 | 
					 | 
					                        mykeysym = XStringToKeysym ("F2");
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        xkeycode = XKeysymToKeycode (dpy, mykeysym);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XTestFakeKeyEvent (dpy, xkeycode, true, CurrentTime);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XSync (dpy, true);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XTestFakeKeyEvent (dpy, xkeycode, false, CurrentTime);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XSync (dpy, true);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        break;
 | 
					 | 
					 | 
					 | 
					                        break;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                    case F3:
 | 
					 | 
					 | 
					 | 
					                    case F3:
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        mykeysym = XStringToKeysym ("F3");
 | 
					 | 
					 | 
					 | 
					                        mykeysym = XStringToKeysym ("F3");
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        xkeycode = XKeysymToKeycode (dpy, mykeysym);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XTestFakeKeyEvent (dpy, xkeycode, true, CurrentTime);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XSync (dpy, true);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XTestFakeKeyEvent (dpy, xkeycode, false, CurrentTime);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XSync (dpy, true);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        break;
 | 
					 | 
					 | 
					 | 
					                        break;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                    case F4:
 | 
					 | 
					 | 
					 | 
					                    case F4:
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        mykeysym = XStringToKeysym ("F4");
 | 
					 | 
					 | 
					 | 
					                        mykeysym = XStringToKeysym ("F4");
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        xkeycode = XKeysymToKeycode (dpy, mykeysym);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XTestFakeKeyEvent (dpy, xkeycode, true, CurrentTime);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XSync (dpy, true);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XTestFakeKeyEvent (dpy, xkeycode, false, CurrentTime);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XSync (dpy, true);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        break;
 | 
					 | 
					 | 
					 | 
					                        break;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                    case F5:
 | 
					 | 
					 | 
					 | 
					                    case F5:
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        mykeysym = XStringToKeysym ("F5");
 | 
					 | 
					 | 
					 | 
					                        mykeysym = XStringToKeysym ("F5");
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        xkeycode = XKeysymToKeycode (dpy, mykeysym);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XTestFakeKeyEvent (dpy, xkeycode, true, CurrentTime);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XSync (dpy, true);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XTestFakeKeyEvent (dpy, xkeycode, false, CurrentTime);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XSync (dpy, true);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        break;
 | 
					 | 
					 | 
					 | 
					                        break;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                    case F6:
 | 
					 | 
					 | 
					 | 
					                    case F6:
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        mykeysym = XStringToKeysym ("F6");
 | 
					 | 
					 | 
					 | 
					                        mykeysym = XStringToKeysym ("F6");
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        xkeycode = XKeysymToKeycode (dpy, mykeysym);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XTestFakeKeyEvent (dpy, xkeycode, true, CurrentTime);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XSync (dpy, true);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XTestFakeKeyEvent (dpy, xkeycode, false, CurrentTime);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XSync (dpy, true);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        break;
 | 
					 | 
					 | 
					 | 
					                        break;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                    case F7:
 | 
					 | 
					 | 
					 | 
					                    case F7:
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        mykeysym = XStringToKeysym ("F7");
 | 
					 | 
					 | 
					 | 
					                        mykeysym = XStringToKeysym ("F7");
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        xkeycode = XKeysymToKeycode (dpy, mykeysym);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XTestFakeKeyEvent (dpy, xkeycode, true, CurrentTime);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XSync (dpy, true);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XTestFakeKeyEvent (dpy, xkeycode, false, CurrentTime);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XSync (dpy, true);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        break;
 | 
					 | 
					 | 
					 | 
					                        break;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                    case F8:
 | 
					 | 
					 | 
					 | 
					                    case F8:
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        mykeysym = XStringToKeysym ("F8");
 | 
					 | 
					 | 
					 | 
					                        mykeysym = XStringToKeysym ("F8");
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        xkeycode = XKeysymToKeycode (dpy, mykeysym);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XTestFakeKeyEvent (dpy, xkeycode, true, CurrentTime);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XSync (dpy, true);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XTestFakeKeyEvent (dpy, xkeycode, false, CurrentTime);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XSync (dpy, true);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        break;
 | 
					 | 
					 | 
					 | 
					                        break;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                    case F9:
 | 
					 | 
					 | 
					 | 
					                    case F9:
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        mykeysym = XStringToKeysym ("F9");
 | 
					 | 
					 | 
					 | 
					                        mykeysym = XStringToKeysym ("F9");
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        xkeycode = XKeysymToKeycode (dpy, mykeysym);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XTestFakeKeyEvent (dpy, xkeycode, true, CurrentTime);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XSync (dpy, true);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XTestFakeKeyEvent (dpy, xkeycode, false, CurrentTime);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XSync (dpy, true);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        break;
 | 
					 | 
					 | 
					 | 
					                        break;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                    case F11:
 | 
					 | 
					 | 
					 | 
					                    case F11:
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        mykeysym = XStringToKeysym ("F11");
 | 
					 | 
					 | 
					 | 
					                        mykeysym = XStringToKeysym ("F11");
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        xkeycode = XKeysymToKeycode (dpy, mykeysym);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XTestFakeKeyEvent (dpy, xkeycode, true, CurrentTime);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XSync (dpy, true);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XTestFakeKeyEvent (dpy, xkeycode, false, CurrentTime);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XSync (dpy, true);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        break;
 | 
					 | 
					 | 
					 | 
					                        break;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                    case F12:
 | 
					 | 
					 | 
					 | 
					                    case F12:
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        mykeysym = XStringToKeysym ("F12");
 | 
					 | 
					 | 
					 | 
					                        mykeysym = XStringToKeysym ("F12");
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        xkeycode = XKeysymToKeycode (dpy, mykeysym);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XTestFakeKeyEvent (dpy, xkeycode, true, CurrentTime);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XSync (dpy, true);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XTestFakeKeyEvent (dpy, xkeycode, false, CurrentTime);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XSync (dpy, true);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        break;
 | 
					 | 
					 | 
					 | 
					                        break;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                    case PAGE_UP:
 | 
					 | 
					 | 
					 | 
					                    case PAGE_UP:
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        mykeysym = XStringToKeysym ("Page_Up");
 | 
					 | 
					 | 
					 | 
					                        mykeysym = XStringToKeysym ("Page_Up");
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        xkeycode = XKeysymToKeycode (dpy, mykeysym);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XTestFakeKeyEvent (dpy, xkeycode, true, CurrentTime);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XSync (dpy, true);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XTestFakeKeyEvent (dpy, xkeycode, false, CurrentTime);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XSync (dpy, true);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        break;
 | 
					 | 
					 | 
					 | 
					                        break;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                    case PAGE_DOWN:
 | 
					 | 
					 | 
					 | 
					                    case PAGE_DOWN:
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        mykeysym = XStringToKeysym ("Page_Down");
 | 
					 | 
					 | 
					 | 
					                        mykeysym = XStringToKeysym ("Page_Down");
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        xkeycode = XKeysymToKeycode (dpy, mykeysym);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XTestFakeKeyEvent (dpy, xkeycode, true, CurrentTime);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XSync (dpy, true);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XTestFakeKeyEvent (dpy, xkeycode, false, CurrentTime);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XSync (dpy, true);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        break;
 | 
					 | 
					 | 
					 | 
					                        break;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                    case INSERT:
 | 
					 | 
					 | 
					 | 
					                    case INSERT:
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        mykeysym = XStringToKeysym ("Insert");
 | 
					 | 
					 | 
					 | 
					                        mykeysym = XStringToKeysym ("Insert");
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        xkeycode = XKeysymToKeycode (dpy, mykeysym);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XTestFakeKeyEvent (dpy, xkeycode, true, CurrentTime);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XSync (dpy, true);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XTestFakeKeyEvent (dpy, xkeycode, false, CurrentTime);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XSync (dpy, true);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        break;
 | 
					 | 
					 | 
					 | 
					                        break;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                    case KEY_DELETE:
 | 
					 | 
					 | 
					 | 
					                    case DFHack::DELETE: // collides with some windows stuff otherwise?
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        mykeysym = XStringToKeysym ("Delete");
 | 
					 | 
					 | 
					 | 
					                        mykeysym = XStringToKeysym ("Delete");
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        xkeycode = XKeysymToKeycode (dpy, mykeysym);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XTestFakeKeyEvent (dpy, xkeycode, true, CurrentTime);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XSync (dpy, true);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XTestFakeKeyEvent (dpy, xkeycode, false, CurrentTime);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XSync (dpy, true);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        break;
 | 
					 | 
					 | 
					 | 
					                        break;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                    case HOME:
 | 
					 | 
					 | 
					 | 
					                    case HOME:
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        mykeysym = XStringToKeysym ("Home");
 | 
					 | 
					 | 
					 | 
					                        mykeysym = XStringToKeysym ("Home");
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        xkeycode = XKeysymToKeycode (dpy, mykeysym);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XTestFakeKeyEvent (dpy, xkeycode, true, CurrentTime);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XSync (dpy, true);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XTestFakeKeyEvent (dpy, xkeycode, false, CurrentTime);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XSync (dpy, true);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        break;
 | 
					 | 
					 | 
					 | 
					                        break;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                    case END:
 | 
					 | 
					 | 
					 | 
					                    case END:
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        mykeysym = XStringToKeysym ("End");
 | 
					 | 
					 | 
					 | 
					                        mykeysym = XStringToKeysym ("End");
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        xkeycode = XKeysymToKeycode (dpy, mykeysym);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XTestFakeKeyEvent (dpy, xkeycode, true, CurrentTime);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XSync (dpy, true);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XTestFakeKeyEvent (dpy, xkeycode, false, CurrentTime);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XSync (dpy, true);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        break;
 | 
					 | 
					 | 
					 | 
					                        break;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                    case KEYPAD_DIVIDE:
 | 
					 | 
					 | 
					 | 
					                    case KEYPAD_DIVIDE:
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        mykeysym = XStringToKeysym ("KP_Divide");
 | 
					 | 
					 | 
					 | 
					                        mykeysym = XStringToKeysym ("KP_Divide");
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        xkeycode = XKeysymToKeycode (dpy, mykeysym);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XTestFakeKeyEvent (dpy, xkeycode, true, CurrentTime);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XSync (dpy, true);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XTestFakeKeyEvent (dpy, xkeycode, false, CurrentTime);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XSync (dpy, true);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        break;
 | 
					 | 
					 | 
					 | 
					                        break;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                    case KEYPAD_MULTIPLY:
 | 
					 | 
					 | 
					 | 
					                    case KEYPAD_MULTIPLY:
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        mykeysym = XStringToKeysym ("KP_Multiply");
 | 
					 | 
					 | 
					 | 
					                        mykeysym = XStringToKeysym ("KP_Multiply");
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        xkeycode = XKeysymToKeycode (dpy, mykeysym);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XTestFakeKeyEvent (dpy, xkeycode, true, CurrentTime);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XSync (dpy, true);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XTestFakeKeyEvent (dpy, xkeycode, false, CurrentTime);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XSync (dpy, true);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        break;
 | 
					 | 
					 | 
					 | 
					                        break;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                    case KEYPAD_SUBTRACT:
 | 
					 | 
					 | 
					 | 
					                    case KEYPAD_SUBTRACT:
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        mykeysym = XStringToKeysym ("KP_Subtract");
 | 
					 | 
					 | 
					 | 
					                        mykeysym = XStringToKeysym ("KP_Subtract");
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        xkeycode = XKeysymToKeycode (dpy, mykeysym);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XTestFakeKeyEvent (dpy, xkeycode, true, CurrentTime);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XSync (dpy, true);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XTestFakeKeyEvent (dpy, xkeycode, false, CurrentTime);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XSync (dpy, true);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        break;
 | 
					 | 
					 | 
					 | 
					                        break;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                    case KEYPAD_ADD:
 | 
					 | 
					 | 
					 | 
					                    case KEYPAD_ADD:
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        mykeysym = XStringToKeysym ("KP_Add");
 | 
					 | 
					 | 
					 | 
					                        mykeysym = XStringToKeysym ("KP_Add");
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        xkeycode = XKeysymToKeycode (dpy, mykeysym);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XTestFakeKeyEvent (dpy, xkeycode, true, CurrentTime);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XSync (dpy, true);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XTestFakeKeyEvent (dpy, xkeycode, false, CurrentTime);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XSync (dpy, true);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        break;
 | 
					 | 
					 | 
					 | 
					                        break;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                    case KEYPAD_ENTER:
 | 
					 | 
					 | 
					 | 
					                    case KEYPAD_ENTER:
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        mykeysym = XStringToKeysym ("KP_Enter");
 | 
					 | 
					 | 
					 | 
					                        mykeysym = XStringToKeysym ("KP_Enter");
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        xkeycode = XKeysymToKeycode (dpy, mykeysym);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XTestFakeKeyEvent (dpy, xkeycode, true, CurrentTime);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XSync (dpy, true);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XTestFakeKeyEvent (dpy, xkeycode, false, CurrentTime);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XSync (dpy, true);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        break;
 | 
					 | 
					 | 
					 | 
					                        break;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                    case KEYPAD_0:
 | 
					 | 
					 | 
					 | 
					                    case KEYPAD_0:
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        mykeysym = XStringToKeysym ("KP_0");
 | 
					 | 
					 | 
					 | 
					                        mykeysym = XStringToKeysym ("KP_0");
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        xkeycode = XKeysymToKeycode (dpy, mykeysym);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XTestFakeKeyEvent (dpy, xkeycode, true, CurrentTime);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XSync (dpy, true);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XTestFakeKeyEvent (dpy, xkeycode, false, CurrentTime);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XSync (dpy, true);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        break;
 | 
					 | 
					 | 
					 | 
					                        break;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                    case KEYPAD_1:
 | 
					 | 
					 | 
					 | 
					                    case KEYPAD_1:
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        mykeysym = XStringToKeysym ("KP_1");
 | 
					 | 
					 | 
					 | 
					                        mykeysym = XStringToKeysym ("KP_1");
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        xkeycode = XKeysymToKeycode (dpy, mykeysym);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XTestFakeKeyEvent (dpy, xkeycode, true, CurrentTime);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XSync (dpy, true);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XTestFakeKeyEvent (dpy, xkeycode, false, CurrentTime);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XSync (dpy, true);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        break;
 | 
					 | 
					 | 
					 | 
					                        break;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                    case KEYPAD_2:
 | 
					 | 
					 | 
					 | 
					                    case KEYPAD_2:
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        mykeysym = XStringToKeysym ("KP_2");
 | 
					 | 
					 | 
					 | 
					                        mykeysym = XStringToKeysym ("KP_2");
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        xkeycode = XKeysymToKeycode (dpy, mykeysym);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XTestFakeKeyEvent (dpy, xkeycode, true, CurrentTime);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XSync (dpy, true);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XTestFakeKeyEvent (dpy, xkeycode, false, CurrentTime);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XSync (dpy, true);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        break;
 | 
					 | 
					 | 
					 | 
					                        break;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                    case KEYPAD_3:
 | 
					 | 
					 | 
					 | 
					                    case KEYPAD_3:
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        mykeysym = XStringToKeysym ("KP_3");
 | 
					 | 
					 | 
					 | 
					                        mykeysym = XStringToKeysym ("KP_3");
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        xkeycode = XKeysymToKeycode (dpy, mykeysym);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XTestFakeKeyEvent (dpy, xkeycode, true, CurrentTime);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XSync (dpy, true);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XTestFakeKeyEvent (dpy, xkeycode, false, CurrentTime);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XSync (dpy, true);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        break;
 | 
					 | 
					 | 
					 | 
					                        break;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                    case KEYPAD_4:
 | 
					 | 
					 | 
					 | 
					                    case KEYPAD_4:
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        mykeysym = XStringToKeysym ("KP_4");
 | 
					 | 
					 | 
					 | 
					                        mykeysym = XStringToKeysym ("KP_4");
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        xkeycode = XKeysymToKeycode (dpy, mykeysym);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XTestFakeKeyEvent (dpy, xkeycode, true, CurrentTime);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XSync (dpy, true);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XTestFakeKeyEvent (dpy, xkeycode, false, CurrentTime);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XSync (dpy, true);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        break;
 | 
					 | 
					 | 
					 | 
					                        break;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                    case KEYPAD_5:
 | 
					 | 
					 | 
					 | 
					                    case KEYPAD_5:
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        mykeysym = XStringToKeysym ("KP_5");
 | 
					 | 
					 | 
					 | 
					                        mykeysym = XStringToKeysym ("KP_5");
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        xkeycode = XKeysymToKeycode (dpy, mykeysym);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XTestFakeKeyEvent (dpy, xkeycode, true, CurrentTime);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XSync (dpy, true);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XTestFakeKeyEvent (dpy, xkeycode, false, CurrentTime);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XSync (dpy, true);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        break;
 | 
					 | 
					 | 
					 | 
					                        break;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                    case KEYPAD_6:
 | 
					 | 
					 | 
					 | 
					                    case KEYPAD_6:
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        mykeysym = XStringToKeysym ("KP_6");
 | 
					 | 
					 | 
					 | 
					                        mykeysym = XStringToKeysym ("KP_6");
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        xkeycode = XKeysymToKeycode (dpy, mykeysym);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XTestFakeKeyEvent (dpy, xkeycode, true, CurrentTime);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XSync (dpy, true);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XTestFakeKeyEvent (dpy, xkeycode, false, CurrentTime);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XSync (dpy, true);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        break;
 | 
					 | 
					 | 
					 | 
					                        break;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                    case KEYPAD_7:
 | 
					 | 
					 | 
					 | 
					                    case KEYPAD_7:
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        mykeysym = XStringToKeysym ("KP_7");
 | 
					 | 
					 | 
					 | 
					                        mykeysym = XStringToKeysym ("KP_7");
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        xkeycode = XKeysymToKeycode (dpy, mykeysym);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XTestFakeKeyEvent (dpy, xkeycode, true, CurrentTime);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XSync (dpy, true);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XTestFakeKeyEvent (dpy, xkeycode, false, CurrentTime);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XSync (dpy, true);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        break;
 | 
					 | 
					 | 
					 | 
					                        break;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                    case KEYPAD_8:
 | 
					 | 
					 | 
					 | 
					                    case KEYPAD_8:
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        mykeysym = XStringToKeysym ("KP_8");
 | 
					 | 
					 | 
					 | 
					                        mykeysym = XStringToKeysym ("KP_8");
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        xkeycode = XKeysymToKeycode (dpy, mykeysym);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XTestFakeKeyEvent (dpy, xkeycode, true, CurrentTime);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XSync (dpy, true);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XTestFakeKeyEvent (dpy, xkeycode, false, CurrentTime);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XSync (dpy, true);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        break;
 | 
					 | 
					 | 
					 | 
					                        break;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                    case KEYPAD_9:
 | 
					 | 
					 | 
					 | 
					                    case KEYPAD_9:
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        mykeysym = XStringToKeysym ("KP_9");
 | 
					 | 
					 | 
					 | 
					                        mykeysym = XStringToKeysym ("KP_9");
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        xkeycode = XKeysymToKeycode (dpy, mykeysym);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XTestFakeKeyEvent (dpy, xkeycode, true, CurrentTime);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XSync (dpy, true);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XTestFakeKeyEvent (dpy, xkeycode, false, CurrentTime);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XSync (dpy, true);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        break;
 | 
					 | 
					 | 
					 | 
					                        break;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                    case KEYPAD_DECIMAL_POINT:
 | 
					 | 
					 | 
					 | 
					                    case KEYPAD_DECIMAL_POINT:
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        mykeysym = XStringToKeysym ("KP_Decimal");
 | 
					 | 
					 | 
					 | 
					                        mykeysym = XStringToKeysym ("KP_Decimal");
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        xkeycode = XKeysymToKeycode (dpy, mykeysym);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XTestFakeKeyEvent (dpy, xkeycode, true, CurrentTime);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XSync (dpy, true);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XTestFakeKeyEvent (dpy, xkeycode, false, CurrentTime);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        XSync (dpy, true);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        break;
 | 
					 | 
					 | 
					 | 
					                        break;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                }
 | 
					 | 
					 | 
					 | 
					                }
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                xkeycode = XKeysymToKeycode (dpy, mykeysym);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                XTestFakeKeyEvent (dpy, xkeycode, true, CurrentTime);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                XSync (dpy, true);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                XTestFakeKeyEvent (dpy, xkeycode, false, CurrentTime);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                XSync (dpy, true);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                usleep(20000);
 | 
					 | 
					 | 
					 | 
					                usleep(20000);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            }
 | 
					 | 
					 | 
					 | 
					            }
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            if (currAttr.map_state == IsUnmapped)
 | 
					 | 
					 | 
					 | 
					            if (currAttr.map_state == IsUnmapped)
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
					 | 
					
 
 |