diff --git a/.gitignore b/.gitignore index e43b0f98..9f2e8485 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ .DS_Store +__pycache__/ diff --git a/helpers/buttons.py b/helpers/buttons.py index b79d3453..b5d303a9 100644 --- a/helpers/buttons.py +++ b/helpers/buttons.py @@ -32,10 +32,12 @@ class Buttons: return - def wait_for(self, keys = [], check_release = True) -> int: + def wait_for(self, keys = [], check_release = True, release_keys = []) -> int: + if not release_keys: + release_keys = keys while True: for i in keys: - if check_release == False or (check_release == True and B.release_lock == True): + if check_release == False or ((check_release == True and i in release_keys and B.release_lock == True) or check_release == True and i not in release_keys): # when check release is False or the release lock is released (True) if self.GPIO.input(i) == GPIO.LOW or self.override_ind == True: B.release_lock = False diff --git a/views/seed_tools_view.py b/views/seed_tools_view.py index e41dac3c..111bbaa4 100644 --- a/views/seed_tools_view.py +++ b/views/seed_tools_view.py @@ -42,7 +42,7 @@ class SeedToolsView(View): # Wait for Button Input (specifically menu selection/press) while True: - input = self.buttons.wait_for([B.KEY_UP, B.KEY_DOWN, B.KEY_PRESS, B.KEY_RIGHT, B.KEY_LEFT, B.KEY1, B.KEY2, B.KEY3]) + input = self.buttons.wait_for([B.KEY_UP, B.KEY_DOWN, B.KEY_PRESS, B.KEY_RIGHT, B.KEY_LEFT, B.KEY1, B.KEY2, B.KEY3], True, [B.KEY_PRESS, B.KEY_RIGHT, B.KEY_LEFT, B.KEY1, B.KEY2, B.KEY3]) if input == B.KEY_UP: ret_val = self.gather_words_up() elif input == B.KEY_DOWN: