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 == "*"; let is_all = target_output == "all" || target_output == "*";
if is_all { if is_all {
let wl_outputs: Vec<_> = state.output_state.outputs().collect(); // OutputHandler::new_output already attached one layer per existing
if wl_outputs.is_empty() { // output during the roundtrip above. Only fall back to a compositor-
// No outputs reported yet; let the compositor assign. // assigned surface if none arrived.
if state.outputs.is_empty() {
state.attach_output(&qh, None); state.attach_output(&qh, None);
} else {
for wl_out in &wl_outputs {
state.attach_output(&qh, Some(wl_out));
}
} }
} else { } else {
let wl_out = find_output(&state.output_state, &target_output); let wl_out = find_output(&state.output_state, &target_output);
@@ -343,6 +340,12 @@ impl OutputHandler for AppState {
output: wl_output::WlOutput, output: wl_output::WlOutput,
) { ) {
if self.target_output == "all" || self.target_output == "*" { 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)); self.attach_output(qh, Some(&output));
} }
} }