3 #endif /* ifdef HAVE_CONFIG_H */
8 # include <X11/extensions/XTest.h>
9 #endif /* ifdef ECORE_XTEST */
11 #include "ecore_x_private.h"
17 ecore_x_test_fake_key_down(const char *key)
19 ecore_x_test_fake_key_down(const char *key __UNUSED__)
26 LOGFN(__FILE__, __LINE__, __FUNCTION__);
27 if (!strncmp(key, "Keycode-", 8))
28 keycode = atoi(key + 8);
31 keysym = XStringToKeysym(key);
32 if (keysym == NoSymbol)
35 keycode = XKeysymToKeycode(_ecore_x_disp, keysym);
41 return XTestFakeKeyEvent(_ecore_x_disp, keycode, 1, 0) ? EINA_TRUE : EINA_FALSE;
42 #else /* ifdef ECORE_XTEST */
44 #endif /* ifdef ECORE_XTEST */
49 ecore_x_test_fake_key_up(const char *key)
51 ecore_x_test_fake_key_up(const char *key __UNUSED__)
58 LOGFN(__FILE__, __LINE__, __FUNCTION__);
59 if (!strncmp(key, "Keycode-", 8))
60 keycode = atoi(key + 8);
63 keysym = XStringToKeysym(key);
64 if (keysym == NoSymbol)
67 keycode = XKeysymToKeycode(_ecore_x_disp, keysym);
73 return XTestFakeKeyEvent(_ecore_x_disp, keycode, 0, 0) ? EINA_TRUE : EINA_FALSE;
74 #else /* ifdef ECORE_XTEST */
76 #endif /* ifdef ECORE_XTEST */
81 ecore_x_test_fake_key_press(const char *key)
83 ecore_x_test_fake_key_press(const char *key __UNUSED__)
91 LOGFN(__FILE__, __LINE__, __FUNCTION__);
92 if (!strncmp(key, "Keycode-", 8))
93 keycode = atoi(key + 8);
96 keysym = XStringToKeysym(key);
97 if (keysym == NoSymbol)
100 keycode = XKeysymToKeycode(_ecore_x_disp, keysym);
101 if (_ecore_x_XKeycodeToKeysym(_ecore_x_disp, keycode, 0) != keysym)
103 if (_ecore_x_XKeycodeToKeysym(_ecore_x_disp, keycode, 1) == keysym)
116 int keycode_min, keycode_max, keycode_num;
119 XDisplayKeycodes(_ecore_x_disp, &keycode_min, &keycode_max);
120 keysyms = XGetKeyboardMapping(_ecore_x_disp, keycode_min,
121 keycode_max - keycode_min + 1,
123 mod = (mod + 1) & 0x7;
124 i = (keycode_max - keycode_min - mod - 1) * keycode_num;
127 XChangeKeyboardMapping(_ecore_x_disp, keycode_min, keycode_num,
128 keysyms, (keycode_max - keycode_min));
130 XSync(_ecore_x_disp, False);
131 keycode = keycode_max - mod - 1;
135 XTestFakeKeyEvent(_ecore_x_disp,
136 XKeysymToKeycode(_ecore_x_disp, XK_Shift_L), 1, 0);
138 XTestFakeKeyEvent(_ecore_x_disp, keycode, 1, 0);
139 XTestFakeKeyEvent(_ecore_x_disp, keycode, 0, 0);
141 XTestFakeKeyEvent(_ecore_x_disp,
142 XKeysymToKeycode(_ecore_x_disp, XK_Shift_L), 0, 0);
145 #else /* ifdef ECORE_XTEST */
147 #endif /* ifdef ECORE_XTEST */
151 ecore_x_keysym_string_get(int keysym)
153 return XKeysymToString(keysym);
157 ecore_x_keysym_keycode_get(const char *keyname)
161 if (!strncmp(keyname, "Keycode-", 8))
162 keycode = atoi(keyname + 8);
164 keycode = XKeysymToKeycode(_ecore_x_disp, XStringToKeysym(keyname));