From 5ad03b5dd14ad54a5ea9de3fcb9aa99230343cf9 Mon Sep 17 00:00:00 2001 From: alfrix Date: Wed, 3 Jan 2024 19:00:40 -0300 Subject: [PATCH] prompts: add escape and backspace to close, prevent concurrent prompts, send prompt_end at close --- ks_includes/widgets/prompts.py | 24 +++++++++++++++--------- screen.py | 10 +++++++--- 2 files changed, 22 insertions(+), 12 deletions(-) diff --git a/ks_includes/widgets/prompts.py b/ks_includes/widgets/prompts.py index 31751ec1..11f4ac2d 100644 --- a/ks_includes/widgets/prompts.py +++ b/ks_includes/widgets/prompts.py @@ -2,7 +2,7 @@ import logging import gi gi.require_version("Gtk", "3.0") -from gi.repository import Gtk +from gi.repository import Gtk, Gdk class Prompt: @@ -15,10 +15,14 @@ class Prompt: self.id = 1 self.prompt = None + def _key_press_event(self, widget, event): + keyval_name = Gdk.keyval_name(event.keyval) + if keyval_name == "Escape" or keyval_name == "BackSpace": + self.close() + def decode(self, data): logging.info(f'{data}') if data.startswith('prompt_begin'): - # action:prompt_begin self.header = data.replace('prompt_begin', '') if self.header: self.window_title = self.header @@ -26,14 +30,9 @@ class Prompt: self.buttons = [] return elif data.startswith('prompt_text'): - # action:prompt_text self.text = data.replace('prompt_text ', '') return elif data.startswith('prompt_button ') or data.startswith('prompt_footer_button'): - # action:prompt_button