Use the correct modifier independently of the layer

This commit is contained in:
Cat /dev/Nulo 2021-12-23 13:36:03 -03:00
parent c9b5ce175c
commit 1ddbfc7b5c
2 changed files with 7 additions and 6 deletions

View file

@ -297,12 +297,12 @@
(press-key-aux keycode key))) (press-key-aux keycode key)))
;; Record that a given key being released resulted in a modifier release. ;; Record that a given key being released resulted in a modifier release.
(define (release-modifier keycode key n) (define (release-modifier modifier key n)
(if (= (or (vector-ref keys-for-modifiers n) (- 0 1)) key) (if (= (or (vector-ref keys-for-modifiers n) (- 0 1)) key)
(begin (begin
(set! modifiers (^ modifiers (unmodify keycode))) (set! modifiers (^ modifiers modifier))
(vector-set! keys-for-modifiers n #f)) (vector-set! keys-for-modifiers n #f))
(and (< n 7) (release-modifier keycode key (+ n 1))))) (and (< n 7) (release-modifier modifier key (+ n 1)))))
;; Record a key release, clearing it out of the press tracking data. ;; Record a key release, clearing it out of the press tracking data.
(define (release-key key) (define (release-key key)
@ -320,9 +320,7 @@
(vector-set! keys-for-frame slot #f)) (vector-set! keys-for-frame slot #f))
#f) #f)
(if modifier-slot (if modifier-slot
(begin (release-modifier (call-c-func "mathpow" 2 modifier-slot) key 0)
(release-modifier keycode key 0)
(release-key key))
#f))))) #f)))))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Send USB ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Send USB

View file

@ -33,6 +33,9 @@
int16_t mathlog2(int x) { int16_t mathlog2(int x) {
return round(log(x)/log(2)); return round(log(x)/log(2));
} }
int16_t mathpow(int x, int y) {
return round(pow(x, y));
}
/************************************************************************** /**************************************************************************
* *