diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/backend/tty.rs | 9 | ||||
| -rw-r--r-- | src/handlers/mod.rs | 2 | ||||
| -rw-r--r-- | src/niri.rs | 28 | ||||
| -rw-r--r-- | src/protocols/output_management.rs | 14 |
4 files changed, 17 insertions, 36 deletions
diff --git a/src/backend/tty.rs b/src/backend/tty.rs index cb04c717..0654f4f0 100644 --- a/src/backend/tty.rs +++ b/src/backend/tty.rs @@ -752,8 +752,7 @@ impl Tty { .config .borrow() .outputs - .iter() - .find(|o| o.name.eq_ignore_ascii_case(&output_name)) + .find(&output_name) .cloned() .unwrap_or_default(); @@ -1633,8 +1632,7 @@ impl Tty { .config .borrow() .outputs - .iter() - .find(|o| o.name.eq_ignore_ascii_case(&surface.name)) + .find(&surface.name) .cloned() .unwrap_or_default(); if config.off { @@ -1763,8 +1761,7 @@ impl Tty { .config .borrow() .outputs - .iter() - .find(|o| o.name.eq_ignore_ascii_case(&output_name)) + .find(&output_name) .cloned() .unwrap_or_default(); diff --git a/src/handlers/mod.rs b/src/handlers/mod.rs index f288e24f..5c502a1f 100644 --- a/src/handlers/mod.rs +++ b/src/handlers/mod.rs @@ -555,7 +555,7 @@ impl OutputManagementHandler for State { &mut self.niri.output_management_state } - fn apply_output_config(&mut self, config: Vec<niri_config::Output>) { + fn apply_output_config(&mut self, config: niri_config::Outputs) { self.niri.config.borrow_mut().outputs = config; self.reload_output_config(); } diff --git a/src/niri.rs b/src/niri.rs index 24a328a0..54211bce 100644 --- a/src/niri.rs +++ b/src/niri.rs @@ -156,7 +156,7 @@ pub struct Niri { /// This does not include transient output config changes done via IPC. It is only used when /// reloading the config from disk to determine if the output configuration should be reloaded /// (and transient changes dropped). - pub config_file_output_config: Vec<niri_config::Output>, + pub config_file_output_config: niri_config::Outputs, pub event_loop: LoopHandle<'static, State>, pub scheduler: Scheduler<()>, @@ -1058,10 +1058,7 @@ impl State { for output in self.niri.global_space.outputs() { let name = output.name(); let config = self.niri.config.borrow_mut(); - let config = config - .outputs - .iter() - .find(|o| o.name.eq_ignore_ascii_case(&name)); + let config = config.outputs.find(&name); let scale = config .and_then(|c| c.scale) @@ -1113,18 +1110,14 @@ impl State { pub fn apply_transient_output_config(&mut self, name: &str, action: niri_ipc::OutputAction) { { let mut config = self.niri.config.borrow_mut(); - let config = if let Some(config) = config - .outputs - .iter_mut() - .find(|o| o.name.eq_ignore_ascii_case(name)) - { + let config = if let Some(config) = config.outputs.find_mut(name) { config } else { - config.outputs.push(niri_config::Output { + config.outputs.0.push(niri_config::Output { name: String::from(name), ..Default::default() }); - config.outputs.last_mut().unwrap() + config.outputs.0.last_mut().unwrap() }; match action { @@ -1753,11 +1746,7 @@ impl Niri { for output in self.global_space.outputs().chain(new_output) { let name = output.name(); let position = self.global_space.output_geometry(output).map(|geo| geo.loc); - let config = config - .outputs - .iter() - .find(|o| o.name.eq_ignore_ascii_case(&name)) - .and_then(|c| c.position); + let config = config.outputs.find(&name).and_then(|c| c.position); outputs.push(Data { output: output.clone(), @@ -1862,10 +1851,7 @@ impl Niri { let name = output.name(); let config = self.config.borrow(); - let c = config - .outputs - .iter() - .find(|o| o.name.eq_ignore_ascii_case(&name)); + let c = config.outputs.find(&name); let scale = c.and_then(|c| c.scale).map(|s| s.0).unwrap_or_else(|| { let size_mm = output.physical_properties().size; let resolution = output.current_mode().unwrap().size; diff --git a/src/protocols/output_management.rs b/src/protocols/output_management.rs index 2842fced..23e419ba 100644 --- a/src/protocols/output_management.rs +++ b/src/protocols/output_management.rs @@ -38,7 +38,7 @@ pub struct OutputManagementManagerState { serial: u32, clients: HashMap<ClientId, ClientData>, current_state: HashMap<OutputId, niri_ipc::Output>, - current_config: Vec<niri_config::Output>, + current_config: niri_config::Outputs, } pub struct OutputManagementManagerGlobalData { @@ -47,7 +47,7 @@ pub struct OutputManagementManagerGlobalData { pub trait OutputManagementHandler { fn output_management_state(&mut self) -> &mut OutputManagementManagerState; - fn apply_output_config(&mut self, config: Vec<niri_config::Output>); + fn apply_output_config(&mut self, config: niri_config::Outputs); } #[derive(Debug)] @@ -84,11 +84,11 @@ impl OutputManagementManagerState { clients: HashMap::new(), serial: 0, current_state: HashMap::new(), - current_config: Vec::new(), + current_config: Default::default(), } } - pub fn on_config_changed(&mut self, new_config: Vec<niri_config::Output>) { + pub fn on_config_changed(&mut self, new_config: niri_config::Outputs) { self.current_config = new_config; } @@ -405,8 +405,7 @@ where Entry::Vacant(entry) => { let mut config = g_state .current_config - .iter() - .find(|o| o.name.eq_ignore_ascii_case(¤t_config.name)) + .find(¤t_config.name) .cloned() .unwrap_or_else(|| niri_config::Output { name: current_config.name.clone(), @@ -455,8 +454,7 @@ where Entry::Vacant(entry) => { let mut config = g_state .current_config - .iter() - .find(|o| o.name.eq_ignore_ascii_case(¤t_config.name)) + .find(¤t_config.name) .cloned() .unwrap_or_else(|| niri_config::Output { name: current_config.name.clone(), |
