]> git.donarmstrong.com Git - qmk_firmware.git/commitdiff
added the possibility to hav shifted(modded) tap dance
authorpmalecka <pmalecka@users.noreply.github.com>
Fri, 1 Dec 2017 08:09:52 +0000 (09:09 +0100)
committerJack Humbert <jack.humb@gmail.com>
Fri, 12 Jan 2018 17:56:21 +0000 (12:56 -0500)
quantum/process_keycode/process_tap_dance.c
quantum/process_keycode/process_tap_dance.h

index f1f28e01660ecfaf33e886ee1d0c1ae59865e71c..f196a9cb6a194a36be1698c4e9422dcd29976a8a 100644 (file)
@@ -79,6 +79,7 @@ static inline void process_tap_dance_action_on_dance_finished (qk_tap_dance_acti
     return;
   action->state.finished = true;
   add_mods(action->state.oneshot_mods);
+  add_weak_mods(action->state.weak_mods);
   send_keyboard_report();
   _process_tap_dance_action_fn (&action->state, action->user_data, action->fn.on_dance_finished);
 }
@@ -87,6 +88,7 @@ static inline void process_tap_dance_action_on_reset (qk_tap_dance_action_t *act
 {
   _process_tap_dance_action_fn (&action->state, action->user_data, action->fn.on_reset);
   del_mods(action->state.oneshot_mods);
+  del_weak_mods(action->state.weak_mods);
   send_keyboard_report();
 }
 
@@ -110,6 +112,8 @@ bool process_tap_dance(uint16_t keycode, keyrecord_t *record) {
       action->state.count++;
       action->state.timer = timer_read();
       action->state.oneshot_mods = get_oneshot_mods();
+      action->state.weak_mods = get_mods();
+      action->state.weak_mods |= get_weak_mods();
       process_tap_dance_action_on_each_tap (action);
 
       if (last_td && last_td != keycode) {
index 37a27c5366f8099408eb400fc1c6dfd640a573c1..ab20ea04ed361d7a6675f9ddba291afc106692b5 100644 (file)
@@ -25,6 +25,7 @@ typedef struct
 {
   uint8_t count;
   uint8_t oneshot_mods;
+  uint8_t weak_mods;
   uint16_t keycode;
   uint16_t timer;
   bool interrupted;