From a4aae1c5055d24c400f78fd44618aef5916adc0c Mon Sep 17 00:00:00 2001 From: tmk Date: Fri, 15 Feb 2013 12:17:03 +0900 Subject: Change: 0 means default_layer in current_layer now - current_layer indicates active layer at the time - default_layer indicates base layer - default_layer is used when current_layer is 0 - with this LAYER_BIT action works as overlay even if default_layer varies other than layer 0. --- common/command.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'common/command.c') diff --git a/common/command.c b/common/command.c index 7bb2a23f19..4c874b1092 100644 --- a/common/command.c +++ b/common/command.c @@ -261,8 +261,9 @@ static bool command_common(uint8_t code) #endif break; #endif + case KC_ESC: + case KC_GRV: case KC_0: - case KC_F10: clear_keyboard(); switch_layer(0); break; @@ -270,7 +271,7 @@ static bool command_common(uint8_t code) clear_keyboard(); switch_layer((code - KC_1) + 1); break; - case KC_F1 ... KC_F9: + case KC_F1 ... KC_F12: clear_keyboard(); switch_layer((code - KC_F1) + 1); break; @@ -545,7 +546,7 @@ static void switch_layer(uint8_t layer) { print_val_hex8(current_layer); print_val_hex8(default_layer); - current_layer = layer; default_layer = layer; + current_layer = 0; print("switch to "); print_val_hex8(layer); } -- cgit v1.2.3 From 2b811352a1497e28b946a49f9f31dc15dbda420b Mon Sep 17 00:00:00 2001 From: tmk Date: Fri, 15 Feb 2013 15:27:19 +0900 Subject: Fix switch_default_layer command --- common/command.c | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) (limited to 'common/command.c') diff --git a/common/command.c b/common/command.c index 4c874b1092..c5b9f0431c 100644 --- a/common/command.c +++ b/common/command.c @@ -27,6 +27,8 @@ along with this program. If not, see . #include "keyboard.h" #include "bootloader.h" #include "command.h" +#include "layer_stack.h" + #ifdef MOUSEKEY_ENABLE #include "mousekey.h" #endif @@ -53,7 +55,7 @@ static void mousekey_console_help(void); #endif static uint8_t numkey2num(uint8_t code); -static void switch_layer(uint8_t layer); +static void switch_default_layer(uint8_t layer); typedef enum { ONESHOT, CONSOLE, MOUSEKEY } cmdstate_t; @@ -264,16 +266,13 @@ static bool command_common(uint8_t code) case KC_ESC: case KC_GRV: case KC_0: - clear_keyboard(); - switch_layer(0); + switch_default_layer(0); break; case KC_1 ... KC_9: - clear_keyboard(); - switch_layer((code - KC_1) + 1); + switch_default_layer((code - KC_1) + 1); break; case KC_F1 ... KC_F12: - clear_keyboard(); - switch_layer((code - KC_F1) + 1); + switch_default_layer((code - KC_F1) + 1); break; default: print("?"); @@ -542,11 +541,14 @@ static uint8_t numkey2num(uint8_t code) return 0; } -static void switch_layer(uint8_t layer) +static void switch_default_layer(uint8_t layer) { print_val_hex8(current_layer); print_val_hex8(default_layer); - default_layer = layer; - current_layer = 0; print("switch to "); print_val_hex8(layer); + + default_layer = layer; + current_layer = 0; /* 0 means default_layer */ + layer_stack_clear(); + clear_keyboard(); } -- cgit v1.2.3 From d9f287586635a401b8d6a80614bee6dbebe2f18c Mon Sep 17 00:00:00 2001 From: tmk Date: Fri, 15 Feb 2013 18:48:36 +0900 Subject: Replace layer_stack with layer_switch --- common/command.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'common/command.c') diff --git a/common/command.c b/common/command.c index c5b9f0431c..82f647c8f3 100644 --- a/common/command.c +++ b/common/command.c @@ -26,8 +26,8 @@ along with this program. If not, see . #include "timer.h" #include "keyboard.h" #include "bootloader.h" +#include "layer_switch.h" #include "command.h" -#include "layer_stack.h" #ifdef MOUSEKEY_ENABLE #include "mousekey.h" @@ -549,6 +549,6 @@ static void switch_default_layer(uint8_t layer) default_layer = layer; current_layer = 0; /* 0 means default_layer */ - layer_stack_clear(); + layer_switch_clear(); clear_keyboard(); } -- cgit v1.2.3 From e324fa29187dff7868d9d7fd378e0e46d77107a5 Mon Sep 17 00:00:00 2001 From: tmk Date: Sat, 16 Feb 2013 04:05:58 +0900 Subject: Rewrite layer action with layer_switch --- common/command.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) (limited to 'common/command.c') diff --git a/common/command.c b/common/command.c index 82f647c8f3..2d01c95e6a 100644 --- a/common/command.c +++ b/common/command.c @@ -543,12 +543,9 @@ static uint8_t numkey2num(uint8_t code) static void switch_default_layer(uint8_t layer) { - print_val_hex8(current_layer); - print_val_hex8(default_layer); - print("switch to "); print_val_hex8(layer); - + // TODO check existence of layer or whether it can be used as default layer + print("switch_default_layer: "); print_dec(default_layer); print(" to "); print_dec(layer); default_layer = layer; - current_layer = 0; /* 0 means default_layer */ layer_switch_clear(); clear_keyboard(); } -- cgit v1.2.3 From e0f960a576e090808e5cc25c5368441c11f36ea6 Mon Sep 17 00:00:00 2001 From: tmk Date: Wed, 20 Feb 2013 11:16:13 +0900 Subject: Add overlay framework --- common/command.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) (limited to 'common/command.c') diff --git a/common/command.c b/common/command.c index 2d01c95e6a..202d531fd8 100644 --- a/common/command.c +++ b/common/command.c @@ -543,9 +543,8 @@ static uint8_t numkey2num(uint8_t code) static void switch_default_layer(uint8_t layer) { - // TODO check existence of layer or whether it can be used as default layer - print("switch_default_layer: "); print_dec(default_layer); print(" to "); print_dec(layer); - default_layer = layer; - layer_switch_clear(); + print("switch_default_layer: "); print_dec(default_layer); print(" to "); print_dec(layer); print("\n"); + default_layer_set(layer); + overlay_clear(); clear_keyboard(); } -- cgit v1.2.3