diff --git a/main.py b/main.py index 3388558..e774280 100644 --- a/main.py +++ b/main.py @@ -46,7 +46,7 @@ def init_speedtest(self) -> None: self.show_error() self.set_bottom_label(None) self.image_state = "error" - + def on_ready(self): self.set_media(media_path=os .path.join(self.plugin_base.PATH, "assets", "speed.png"), size=0.8, valign=-1, update=True) self.set_bottom_label("Start") @@ -66,6 +66,23 @@ def on_key_down(self): elif self.image_state in ["running", "error"]: return + def on_key_hold(self): + """ + Clears the top, center, and bottom labels and restores the speed.png image. + """ + self.set_top_label(None) + self.set_center_label(None) + self.set_bottom_label("Start") + self.set_media(media_path=os.path.join(self.plugin_base.PATH, "assets", "speed.png"), size=0.8, valign=-1, update=True) + + + def event_callback(self, event, data=None): + # Handles key events for the Speedtest action + if hasattr(Input, "Key") and hasattr(Input.Key, "Events"): + if event == Input.Key.Events.SHORT_UP: + self.on_key_down() + elif event == Input.Key.Events.HOLD_START: + self.on_key_hold() def perform_test(self): self.init_speedtest() @@ -126,4 +143,4 @@ def init_locale_manager(self): def get_selector_icon(self) -> Gtk.Widget: return Gtk.Image(file=os.path.join(self.PATH, "assets", "speed.png")) # return Gtk.Image.new_from_filename(os.path.join(self.PATH, "assets", "speed.png")) - return Gtk.Picture.new_for_filename(os.path.join(self.PATH, "assets", "speed.png")) \ No newline at end of file + return Gtk.Picture.new_for_filename(os.path.join(self.PATH, "assets", "speed.png"))