diff --git a/src/tree/output.rs b/src/tree/output.rs index ff87fa99..6cdcc2e7 100644 --- a/src/tree/output.rs +++ b/src/tree/output.rs @@ -490,13 +490,7 @@ impl OutputNode { self.state.add_output_scale(scale); let rect = self.calculate_extents(); self.change_extents_(&rect); - let mut visitor = SurfaceSendPreferredScaleVisitor; - self.node_visit_children(&mut visitor); - for ws in self.workspaces.iter() { - for stacked in ws.stacked.iter() { - stacked.deref().clone().node_visit(&mut visitor); - } - } + self.visit_children(&mut SurfaceSendPreferredScaleVisitor); self.schedule_update_render_data(); self.global .connector @@ -990,7 +984,16 @@ impl OutputNode { for fb in self.global.color_description_listeners.lock().values() { fb.send_image_description_changed(); } - self.node_visit_children(&mut SurfaceSendPreferredColorDescription); + self.visit_children(&mut SurfaceSendPreferredColorDescription); + } + } + + fn visit_children(&self, visitor: &mut dyn NodeVisitor) { + self.node_visit_children(visitor); + for ws in self.workspaces.iter() { + for stacked in ws.stacked.iter() { + stacked.deref().clone().node_visit(visitor); + } } }