summaryrefslogtreecommitdiff
path: root/grc
diff options
context:
space:
mode:
Diffstat (limited to 'grc')
-rw-r--r--grc/src/gui/ActionHandler.py4
-rw-r--r--grc/src/platforms/gui/FlowGraph.py20
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