diff options
Diffstat (limited to 'grc')
-rw-r--r-- | grc/src/gui/ActionHandler.py | 4 | ||||
-rw-r--r-- | grc/src/platforms/gui/FlowGraph.py | 20 |
2 files changed, 15 insertions, 9 deletions
diff --git a/grc/src/gui/ActionHandler.py b/grc/src/gui/ActionHandler.py index da0909a64..dffba62a3 100644 --- a/grc/src/gui/ActionHandler.py +++ b/grc/src/gui/ActionHandler.py @@ -150,10 +150,9 @@ class ActionHandler: # Selections ################################################## elif state == Actions.ELEMENT_SELECT: - self.get_flow_graph().update() + pass #do nothing, update routines below elif state == Actions.NOTHING_SELECT: self.get_flow_graph().unselect() - self.get_flow_graph().update() ################################################## # Enable/Disable ################################################## @@ -345,6 +344,7 @@ class ActionHandler: Actions.get_action_from_name(Actions.FLOW_GRAPH_SAVE).set_sensitive(not self.get_page().get_saved()) self.main_window.update() #draw the flow graph + self.get_flow_graph().update_highlighting() self.get_flow_graph().queue_draw() def update_exec_stop(self): diff --git a/grc/src/platforms/gui/FlowGraph.py b/grc/src/platforms/gui/FlowGraph.py index 37157ac7c..11942eb2e 100644 --- a/grc/src/platforms/gui/FlowGraph.py +++ b/grc/src/platforms/gui/FlowGraph.py @@ -275,21 +275,27 @@ class FlowGraph(Element): for selected_element in self.get_selected_connections() + self.get_selected_blocks(): selected_element.draw(gc, window) + def update_highlighting(self): + """ + Update highlighting so only the selected are highlighted. + """ + selected_elements = self.get_selected_elements() + for element in self.get_elements(): + element.set_highlighted(element in selected_elements) + def update(self): """ Removed deleted elements from the selected elements list. - Update highlighting so only the selected is highlighted. Call update on all elements. """ selected_elements = self.get_selected_elements() + elements = self.get_elements() #remove deleted elements for selected in selected_elements: - if selected not in self.get_elements(): - selected_elements.remove(selected) - #set highlight and update all - for element in self.get_elements(): - element.set_highlighted(element in selected_elements) - element.update() + if selected in elements: continue + selected_elements.remove(selected) + #update all + for element in elements: element.update() ########################################################################## ## Get Selected |