@@ -82,7 +82,7 @@ def set_app(index):
8282 sleep_remaining -= elapsed_seconds ()
8383 event = macropad .keys .events .get ()
8484
85- if event or last_position != macropad .encoder or macropad .encoder_switch_debounced .released :
85+ if ( event and event . pressed ) or last_position != macropad .encoder or macropad .encoder_switch_debounced .released :
8686 keys .release (Keys .KEY_SLEEP ) # Don't go to sleep!
8787 sleep_remaining = apps [app_index ].timeout
8888 if sleep_remaining <= 0 : # Go to sleep and slow down
@@ -100,14 +100,19 @@ def set_app(index):
100100 last_position = macropad .encoder # Push down and turn (right)
101101 set_app ((app_index + 1 ) % len (apps ))
102102 macro_changed = True
103- elif macropad .encoder < last_position : # Rotary counter-clockwise
104- last_position = macropad .encoder
105- keys .press (Keys .KEY_ENC_LEFT )
103+ elif macropad .encoder < last_position : # Encoder counter-clockwise
104+ while macropad .encoder < last_position :
105+ keys .press (Keys .KEY_ENC_LEFT )
106+ last_position -= 1
106107 keys .release (Keys .KEY_ENC_LEFT )
107- elif macropad .encoder > last_position : # Rotary clockwise
108- last_position = macropad .encoder
109- keys .press (Keys .KEY_ENC_RIGHT )
108+ elif macropad .encoder > last_position : # Encoder clockwise
109+ while macropad .encoder > last_position :
110+ keys .press (Keys .KEY_ENC_RIGHT )
111+ last_position += 1
110112 keys .release (Keys .KEY_ENC_RIGHT )
111- elif macropad .encoder_switch_debounced .released :
112- if macro_changed : macro_changed = False # Land on the selected macro page
113- else : keys .press (Keys .KEY_ENC_BUTTON ) # Encoder button "pressed"
113+ elif macropad .encoder_switch_debounced .released and macro_changed :
114+ keys .press (Keys .KEY_LAUNCH ) # Press the "new page" button
115+ keys .release (Keys .KEY_LAUNCH )
116+ macro_changed = False
117+ elif macropad .encoder_switch_debounced .released : # Encoder button "pressed"
118+ keys .press (Keys .KEY_ENC_BUTTON )
0 commit comments