@@ -175,10 +175,18 @@ int CheckKeyCodes(char* k, MMKeyCode *key) {
175
175
{
176
176
*key = K_ALT;
177
177
}
178
- else if (strcmp (k, " cmd " ) == 0 )
178
+ else if (strcmp (k, " command " ) == 0 )
179
179
{
180
180
*key = K_META;
181
181
}
182
+ else if (strcmp (k, " control" ) == 0 )
183
+ {
184
+ *key = K_CONTROL;
185
+ }
186
+ else if (strcmp (k, " shift" ) == 0 )
187
+ {
188
+ *key = K_SHIFT;
189
+ }
182
190
else if (strcmp (k, " backspace" ) == 0 )
183
191
{
184
192
*key = K_BACKSPACE;
@@ -248,18 +256,39 @@ int CheckKeyFlags(char* f, MMKeyFlags* flags) {
248
256
if (!flags) return -1 ;
249
257
250
258
if (strcmp (f, " alt" ) == 0 ) {
251
- *flags = K_ALT ;
259
+ *flags = MOD_ALT ;
252
260
}
253
- else if (strcmp (f, " cmd " ) == 0 ) {
261
+ else if (strcmp (f, " command " ) == 0 ) {
254
262
*flags = MOD_META;
255
263
}
264
+ else if (strcmp (f, " control" ) == 0 ) {
265
+ *flags = MOD_CONTROL;
266
+ }
267
+ else if (strcmp (f, " shift" ) == 0 ) {
268
+ *flags = MOD_SHIFT;
269
+ }
270
+ else if (strcmp (f, " none" ) == 0 ) {
271
+ *flags = MOD_NONE;
272
+ }
256
273
else {
257
274
return -2 ;
258
275
}
259
276
260
277
return 0 ;
261
278
}
262
279
280
+ int mssleep (unsigned long millisecond)
281
+ {
282
+ struct timespec req;
283
+ time_t sec=(int )(millisecond/1000 );
284
+ millisecond=millisecond-(sec*1000 );
285
+ req.tv_sec =sec;
286
+ req.tv_nsec =millisecond*1000000L ;
287
+ while (nanosleep (&req,&req)==-1 )
288
+ continue ;
289
+ return 1 ;
290
+ }
291
+
263
292
NAN_METHOD (keyTap)
264
293
{
265
294
NanScope ();
@@ -308,6 +337,7 @@ NAN_METHOD(keyTap)
308
337
break ;
309
338
default :
310
339
tapKeyCode (key, flags);
340
+ mssleep (10 );
311
341
}
312
342
313
343
NanReturnValue (NanNew (" 1" ));
@@ -337,8 +367,6 @@ NAN_METHOD(keyToggle)
337
367
break ;
338
368
case 2 :
339
369
f = NULL ;
340
- case 1 :
341
- f = NULL ;
342
370
break ;
343
371
default :
344
372
return NanThrowError (" Invalid number of arguments." );
@@ -366,6 +394,7 @@ NAN_METHOD(keyToggle)
366
394
break ;
367
395
default :
368
396
toggleKeyCode (key, down, flags);
397
+ mssleep (10 );
369
398
}
370
399
371
400
NanReturnValue (NanNew (" 1" ));
0 commit comments