diff --git a/zxlive/commands.py b/zxlive/commands.py index c8d9541..54fa04e 100644 --- a/zxlive/commands.py +++ b/zxlive/commands.py @@ -93,7 +93,8 @@ def undo(self) -> None: def redo(self) -> None: self.old_g = self.graph_view.graph_scene.g - self.old_selected = set(self.graph_view.graph_scene.selected_vertices) + if not self.old_selected: + self.old_selected = set(self.graph_view.graph_scene.selected_vertices) self.g = self.new_g self.update_graph_view(True) @@ -333,7 +334,7 @@ def redo(self) -> None: @dataclass -class AddRewriteStep(SetGraph): +class AddRewriteStep(UpdateGraph): """Adds a new rewrite to the proof. The rewrite is inserted after the currently selected step. In particular, it diff --git a/zxlive/editor_base_panel.py b/zxlive/editor_base_panel.py index 6d1c218..82627a1 100644 --- a/zxlive/editor_base_panel.py +++ b/zxlive/editor_base_panel.py @@ -137,7 +137,6 @@ def delete_selection(self) -> None: rem_vertices.append(get_w_partner(self.graph_scene.g, v)) if not rem_vertices and not selected_edges: return new_g = copy.deepcopy(self.graph_scene.g) - self.graph_scene.clearSelection() new_g.remove_edges(selected_edges) new_g.remove_vertices(list(set(rem_vertices))) cmd = SetGraph(self.graph_view,new_g) if len(set(rem_vertices)) > 128 \