aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/backend/tty.rs9
-rw-r--r--src/handlers/mod.rs2
-rw-r--r--src/niri.rs28
-rw-r--r--src/protocols/output_management.rs14
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(&current_config.name))
+ .find(&current_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(&current_config.name))
+ .find(&current_config.name)
.cloned()
.unwrap_or_else(|| niri_config::Output {
name: current_config.name.clone(),