diff --git a/bec_widgets/cli/client_utils.py b/bec_widgets/cli/client_utils.py index 3823b2b2..6ca32535 100644 --- a/bec_widgets/cli/client_utils.py +++ b/bec_widgets/cli/client_utils.py @@ -446,16 +446,12 @@ class BECGuiClient(RPCBase): widget = rpc_client._run_rpc( "new_dock_area", name, geometry ) # pylint: disable=protected-access - self._ipython_registry[widget._gui_id] = widget - obj = RPCReference(registry=self._ipython_registry, gui_id=widget._gui_id) - return obj + return widget rpc_client = RPCBase(gui_id=f"{self._gui_id}:window", parent=self) widget = rpc_client._run_rpc( "new_dock_area", name, geometry ) # pylint: disable=protected-access - self._ipython_registry[widget._gui_id] = widget - obj = RPCReference(registry=self._ipython_registry, gui_id=widget._gui_id) - return obj + return widget def delete(self, name: str) -> None: """Delete a dock area. @@ -495,9 +491,10 @@ class BECGuiClient(RPCBase): dock_area = obj existing_gui_ids.append(gui_id) - self._top_level[name] = dock_area + obj = RPCReference(registry=self._ipython_registry, gui_id=gui_id) + self._top_level[name] = obj self._exposed_dock_areas.append(name) - setattr(self, name, dock_area) + setattr(self, name, obj) dock_info = dock_area_info["config"].get("docks", None) if dock_info: diff --git a/bec_widgets/cli/rpc/rpc_base.py b/bec_widgets/cli/rpc/rpc_base.py index f5d0bf5d..21b4346b 100644 --- a/bec_widgets/cli/rpc/rpc_base.py +++ b/bec_widgets/cli/rpc/rpc_base.py @@ -227,8 +227,8 @@ class RPCBase: cls = getattr(client, cls) # print(msg_result) ret = cls(parent=self, **msg_result) - self._root._ipython_registry[self._gui_id] = ret - obj = RPCReference(self._root._ipython_registry, self._gui_id) + self._root._ipython_registry[ret._gui_id] = ret + obj = RPCReference(self._root._ipython_registry, ret._gui_id) return obj # return ret return msg_result