Deduplicate output attach on init and log attached output name

This commit is contained in:
2026-06-09 15:14:02 +02:00
parent a7112f1577
commit 20363b498c
+10 -7
View File
@@ -168,14 +168,11 @@ pub fn run(
let is_all = target_output == "all" || target_output == "*";
if is_all {
let wl_outputs: Vec<_> = state.output_state.outputs().collect();
if wl_outputs.is_empty() {
// No outputs reported yet; let the compositor assign.
// OutputHandler::new_output already attached one layer per existing
// output during the roundtrip above. Only fall back to a compositor-
// assigned surface if none arrived.
if state.outputs.is_empty() {
state.attach_output(&qh, None);
} else {
for wl_out in &wl_outputs {
state.attach_output(&qh, Some(wl_out));
}
}
} else {
let wl_out = find_output(&state.output_state, &target_output);
@@ -343,6 +340,12 @@ impl OutputHandler for AppState {
output: wl_output::WlOutput,
) {
if self.target_output == "all" || self.target_output == "*" {
let name = self
.output_state
.info(&output)
.and_then(|i| i.name)
.unwrap_or_else(|| "<unnamed>".into());
log::info!("attaching output: {}", name);
self.attach_output(qh, Some(&output));
}
}