From 91e77108db4cb64d80108e3e5bbccff725dab8cc Mon Sep 17 00:00:00 2001 From: Tom Donaldson Date: Wed, 24 Sep 2025 13:25:15 -0400 Subject: [PATCH 1/2] Protect for when there is no current_overlays listener --- src/ipyaladin/widget.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/ipyaladin/widget.py b/src/ipyaladin/widget.py index a4bc8bce..4033fe56 100644 --- a/src/ipyaladin/widget.py +++ b/src/ipyaladin/widget.py @@ -264,7 +264,10 @@ def _handle_custom_message(self, _: any, message: dict, buffers: any) -> None: self.listener_callback["select"](message["content"]) elif event_type == "save_view_as_image": self._save_file(message["path"], buffers[0]) - elif event_type == "current_overlays": + elif ( + event_type == "current_overlays" + and "current_overlays" in self.listener_callback + ): self._overlays = message["content"]["overlays"] self.listener_callback["current_overlays"](message["content"]) From 8c4e5a0bf585617cd1b0e3c46f18b10f837a640d Mon Sep 17 00:00:00 2001 From: Tom Donaldson Date: Wed, 24 Sep 2025 14:16:12 -0400 Subject: [PATCH 2/2] Move the listener check to after the _overlays update --- src/ipyaladin/widget.py | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/ipyaladin/widget.py b/src/ipyaladin/widget.py index 4033fe56..86ff637e 100644 --- a/src/ipyaladin/widget.py +++ b/src/ipyaladin/widget.py @@ -264,12 +264,10 @@ def _handle_custom_message(self, _: any, message: dict, buffers: any) -> None: self.listener_callback["select"](message["content"]) elif event_type == "save_view_as_image": self._save_file(message["path"], buffers[0]) - elif ( - event_type == "current_overlays" - and "current_overlays" in self.listener_callback - ): + elif event_type == "current_overlays": self._overlays = message["content"]["overlays"] - self.listener_callback["current_overlays"](message["content"]) + if "current_overlays" in self.listener_callback: + self.listener_callback["current_overlays"](message["content"]) @property def selected_objects(self) -> List[Table]: