diff --git a/ui/overviewcanvas.py b/ui/overviewcanvas.py index 4e80d328..e4c1292e 100644 --- a/ui/overviewcanvas.py +++ b/ui/overviewcanvas.py @@ -56,6 +56,7 @@ class OverviewCanvas: self.display_forces = BooleanVar(value=True) self.display_bases = BooleanVar(value=True) self.display_road = BooleanVar(value=True) + self.display_rules = self.compute_display_rules() parent.window.tk.protocol("", self.on_close) @@ -172,6 +173,12 @@ class OverviewCanvas: right_down = False left_down = False + # Detect changes on display rules + r = self.compute_display_rules() + if r != self.display_rules: + self.display_rules = r + self.redraw_required = True + for event in pygame.event.get(): if event.type == pygame.MOUSEMOTION: self.redraw_required = True @@ -427,6 +434,9 @@ class OverviewCanvas: def update(self): self.draw() + def compute_display_rules(self): + return sum([1 if a.get() else 0 for a in [self.display_forces, self.display_road, self.display_bases, self.display_ground_targets]]) + def display(self, cp: ControlPoint): def action(_): return self.parent.go_cp(cp)