aboutsummaryrefslogtreecommitdiff
path: root/common/action.c
diff options
context:
space:
mode:
authortmk <nobody@nowhere>2013-02-20 15:52:32 +0900
committertmk <nobody@nowhere>2013-02-20 15:52:32 +0900
commitc3d57b69e02fce40455c96f4a9ac6b68b89ce027 (patch)
treecafa784fcc2c8ba91827d2417d57c740570b8ac4 /common/action.c
parente0f960a576e090808e5cc25c5368441c11f36ea6 (diff)
downloadqmk_firmware-c3d57b69e02fce40455c96f4a9ac6b68b89ce027.tar.gz
qmk_firmware-c3d57b69e02fce40455c96f4a9ac6b68b89ce027.zip
Add keymap clear/reset action
Diffstat (limited to 'common/action.c')
-rw-r--r--common/action.c34
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 */