summaryrefslogtreecommitdiff
path: root/users/dshields/dshields.c
diff options
context:
space:
mode:
authorWilliam Chang <william@factual.com>2019-11-20 22:17:07 -0800
committerWilliam Chang <william@factual.com>2019-11-20 22:17:07 -0800
commite7f4d56592b3975c38af329e77b4efd9108495e8 (patch)
tree0a416bccbf70bfdbdb9ffcdb3bf136b47378c014 /users/dshields/dshields.c
parent71493b2f9bbd5f3d18373c518fa14ccafcbf48fc (diff)
parent8416a94ad27b3ff058576f09f35f0704a8b39ff3 (diff)
Merge remote-tracking branch 'upstream/master'
Diffstat (limited to 'users/dshields/dshields.c')
-rw-r--r--users/dshields/dshields.c26
1 files changed, 26 insertions, 0 deletions
diff --git a/users/dshields/dshields.c b/users/dshields/dshields.c
new file mode 100644
index 0000000000..8f432a317c
--- /dev/null
+++ b/users/dshields/dshields.c
@@ -0,0 +1,26 @@
+#include "quantum.h"
+#include "dshields.h"
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ if (keycode == KC_ESC && record->event.pressed) {
+ bool rc = true;
+ uint8_t mods = 0;
+ if ((mods = get_oneshot_mods()) && !has_oneshot_mods_timed_out()) {
+ clear_oneshot_mods();
+ unregister_mods(mods);
+ rc = false;
+ }
+ if ((mods = get_oneshot_locked_mods())) {
+ clear_oneshot_locked_mods();
+ unregister_mods(mods);
+ rc = false;
+ }
+ if (is_oneshot_layer_active()) {
+ layer_clear();
+ rc = false;
+ }
+ return rc;
+ }
+ return true;
+}
+