diff --git a/Code/uconsole_keyboard/devterm.h b/Code/uconsole_keyboard/devterm.h index ac6029f..6c92f3f 100644 --- a/Code/uconsole_keyboard/devterm.h +++ b/Code/uconsole_keyboard/devterm.h @@ -25,7 +25,7 @@ typedef struct keyboard_state{ uint8_t layer; uint8_t prev_layer; uint8_t fn_on; - uint8_t sf_on;//shift on + uint16_t sf_on;//shift on uint8_t backlight;//0 1 2 3 uint8_t lock;//0 1 diff --git a/Code/uconsole_keyboard/keymaps.ino b/Code/uconsole_keyboard/keymaps.ino index f816690..2914d17 100644 --- a/Code/uconsole_keyboard/keymaps.ino +++ b/Code/uconsole_keyboard/keymaps.ino @@ -222,8 +222,10 @@ void keyboard_action(DEVTERM*dv,uint8_t row,uint8_t col,uint8_t mode) { }break; case _VOLUME_M:{ if(mode == KEY_PRESSED) { - if(dv->Keyboard_state.sf_on == 1){ + if(dv->Keyboard_state.sf_on > 0){ dv->Consumer->press(HIDConsumer::VOLUME_UP); + dv->Keyboard->release(dv->Keyboard_state.sf_on); + dv->Keyboard_state.sf_on = 0; }else{ dv->Consumer->press(HIDConsumer::VOLUME_DOWN); } @@ -321,7 +323,7 @@ void keypad_action(DEVTERM*dv,uint8_t col,uint8_t mode) { case _LEFT_SHIFT_KEY: case KEY_RIGHT_SHIFT: if(mode == KEY_PRESSED) { - dv->Keyboard_state.sf_on = 1; + dv->Keyboard_state.sf_on = k; if(dv->Keyboard_state.shift.lock == 0){ dv->Keyboard->press(k); dv->Keyboard_state.shift.begin=k;