Deduplicate output attach on init and log attached output name
This commit is contained in:
+10
-7
@@ -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));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user