diff options
| author | tmk <nobody@nowhere> | 2013-02-20 15:52:32 +0900 |
|---|---|---|
| committer | tmk <nobody@nowhere> | 2013-02-20 15:52:32 +0900 |
| commit | c3d57b69e02fce40455c96f4a9ac6b68b89ce027 (patch) | |
| tree | cafa784fcc2c8ba91827d2417d57c740570b8ac4 /common/action.c | |
| parent | e0f960a576e090808e5cc25c5368441c11f36ea6 (diff) | |
| download | qmk_firmware-c3d57b69e02fce40455c96f4a9ac6b68b89ce027.tar.gz qmk_firmware-c3d57b69e02fce40455c96f4a9ac6b68b89ce027.zip | |
Add keymap clear/reset action
Diffstat (limited to 'common/action.c')
| -rw-r--r-- | common/action.c | 34 |
1 files changed, 29 insertions, 5 deletions
diff --git a/common/action.c b/common/action.c index 3703b4e8c..844a35b3e 100644 --- a/common/action.c +++ b/common/action.c | |||
| @@ -355,26 +355,50 @@ static void process_action(keyrecord_t *record) | |||
| 355 | 355 | ||
| 356 | case ACT_KEYMAP: | 356 | case ACT_KEYMAP: |
| 357 | switch (action.layer.code) { | 357 | switch (action.layer.code) { |
| 358 | /* Keymap Reset */ | 358 | /* Keymap clear */ |
| 359 | case OP_RESET: | 359 | case OP_RESET: |
| 360 | default_layer_set(action.layer.val); | 360 | switch (action.layer.val & 0x03) { |
| 361 | case 0: | ||
| 362 | overlay_clear(); | ||
| 363 | keymap_clear(); | ||
| 364 | break; | ||
| 365 | case ON_PRESS: | ||
| 366 | if (event.pressed) { | ||
| 367 | overlay_clear(); | ||
| 368 | keymap_clear(); | ||
| 369 | } | ||
| 370 | break; | ||
| 371 | case ON_RELEASE: | ||
| 372 | if (!event.pressed) { | ||
| 373 | overlay_clear(); | ||
| 374 | keymap_clear(); | ||
| 375 | } | ||
| 376 | break; | ||
| 377 | case ON_BOTH: | ||
| 378 | overlay_clear(); | ||
| 379 | keymap_clear(); | ||
| 380 | break; | ||
| 381 | } | ||
| 361 | break; | 382 | break; |
| 362 | /* Keymap Reset default layer */ | 383 | /* Keymap Reset default layer */ |
| 363 | case (OP_RESET | ON_PRESS): | 384 | case (OP_RESET | ON_PRESS): |
| 364 | if (event.pressed) { | 385 | if (event.pressed) { |
| 365 | default_layer_set(action.layer.val); | ||
| 366 | overlay_clear(); | 386 | overlay_clear(); |
| 387 | keymap_clear(); | ||
| 388 | default_layer_set(action.layer.val); | ||
| 367 | } | 389 | } |
| 368 | break; | 390 | break; |
| 369 | case (OP_RESET | ON_RELEASE): | 391 | case (OP_RESET | ON_RELEASE): |
| 370 | if (!event.pressed) { | 392 | if (!event.pressed) { |
| 371 | default_layer_set(action.layer.val); | ||
| 372 | overlay_clear(); | 393 | overlay_clear(); |
| 394 | keymap_clear(); | ||
| 395 | default_layer_set(action.layer.val); | ||
| 373 | } | 396 | } |
| 374 | break; | 397 | break; |
| 375 | case (OP_RESET | ON_BOTH): | 398 | case (OP_RESET | ON_BOTH): |
| 376 | default_layer_set(action.layer.val); | ||
| 377 | overlay_clear(); | 399 | overlay_clear(); |
| 400 | keymap_clear(); | ||
| 401 | default_layer_set(action.layer.val); | ||
| 378 | break; | 402 | break; |
| 379 | 403 | ||
| 380 | /* Keymap Bit invert */ | 404 | /* Keymap Bit invert */ |
