3 #endif /* ifdef HAVE_CONFIG_H */
8 # include <X11/extensions/XTest.h>
9 #endif /* ifdef ECORE_XTEST */
11 #include "ecore_x_private.h"
16 ecore_x_test_fake_key_down(const char *key)
22 LOGFN(__FILE__, __LINE__, __FUNCTION__);
23 if (!strncmp(key, "Keycode-", 8))
24 keycode = atoi(key + 8);
27 keysym = XStringToKeysym(key);
28 if (keysym == NoSymbol)
31 keycode = XKeysymToKeycode(_ecore_x_disp, keysym);
37 return XTestFakeKeyEvent(_ecore_x_disp, keycode, 1, 0);
38 #else /* ifdef ECORE_XTEST */
40 #endif /* ifdef ECORE_XTEST */
41 } /* ecore_x_test_fake_key_down */
44 ecore_x_test_fake_key_up(const char *key)
50 LOGFN(__FILE__, __LINE__, __FUNCTION__);
51 if (!strncmp(key, "Keycode-", 8))
52 keycode = atoi(key + 8);
55 keysym = XStringToKeysym(key);
56 if (keysym == NoSymbol)
59 keycode = XKeysymToKeycode(_ecore_x_disp, keysym);
65 return XTestFakeKeyEvent(_ecore_x_disp, keycode, 0, 0);
66 #else /* ifdef ECORE_XTEST */
68 #endif /* ifdef ECORE_XTEST */
69 } /* ecore_x_test_fake_key_up */
72 ecore_x_test_fake_key_press(const char *key)
79 LOGFN(__FILE__, __LINE__, __FUNCTION__);
80 if (!strncmp(key, "Keycode-", 8))
81 keycode = atoi(key + 8);
84 keysym = XStringToKeysym(key);
85 if (keysym == NoSymbol)
88 keycode = XKeysymToKeycode(_ecore_x_disp, keysym);
89 if (XKeycodeToKeysym(_ecore_x_disp, keycode, 0) != keysym)
91 if (XKeycodeToKeysym(_ecore_x_disp, keycode, 1) == keysym)
104 int keycode_min, keycode_max, keycode_num;
107 XDisplayKeycodes(_ecore_x_disp, &keycode_min, &keycode_max);
108 keysyms = XGetKeyboardMapping(_ecore_x_disp, keycode_min,
109 keycode_max - keycode_min + 1,
111 mod = (mod + 1) & 0x7;
112 i = (keycode_max - keycode_min - mod - 1) * keycode_num;
115 XChangeKeyboardMapping(_ecore_x_disp, keycode_min, keycode_num,
116 keysyms, (keycode_max - keycode_min));
118 XSync(_ecore_x_disp, False);
119 keycode = keycode_max - mod - 1;
123 XTestFakeKeyEvent(_ecore_x_disp,
124 XKeysymToKeycode(_ecore_x_disp, XK_Shift_L), 1, 0);
126 XTestFakeKeyEvent(_ecore_x_disp, keycode, 1, 0);
127 XTestFakeKeyEvent(_ecore_x_disp, keycode, 0, 0);
129 XTestFakeKeyEvent(_ecore_x_disp,
130 XKeysymToKeycode(_ecore_x_disp, XK_Shift_L), 0, 0);
133 #else /* ifdef ECORE_XTEST */
135 #endif /* ifdef ECORE_XTEST */
136 } /* ecore_x_test_fake_key_press */
139 ecore_x_keysym_string_get(int keysym)
141 return XKeysymToString(keysym);
142 } /* ecore_x_keysym_string_get */