diff --git a/src/main.rs b/src/main.rs index d78a010..c560ea1 100644 --- a/src/main.rs +++ b/src/main.rs @@ -121,7 +121,6 @@ fn create_bars( .ok_or_else(|| Report::msg(error::ERR_OUTPUTS))?; let monitor_name = &output.name; - // TODO: Could we use an Arc or `Cow` here to avoid cloning? config.monitors.as_ref().map_or_else( || { info!("Creating bar on '{}'", monitor_name); diff --git a/src/modules/focused.rs b/src/modules/focused.rs index ac9b1f5..84c9eca 100644 --- a/src/modules/focused.rs +++ b/src/modules/focused.rs @@ -49,13 +49,15 @@ impl Module for FocusedModule { ) -> Result<()> { let focused = await_sync(async { let wl = wayland::get_client().await; - // TODO: Avoid cloning - let toplevels = read_lock!(wl.toplevels).clone(); + let toplevels = read_lock!(wl.toplevels); - toplevels.into_iter().find(|(_, (top, _))| top.active) + toplevels + .iter() + .find(|(_, (top, _))| top.active) + .map(|(_, (top, _))| top.clone()) }); - if let Some((_, (top, _))) = focused { + if let Some(top) = focused { tx.try_send(ModuleUpdateEvent::Update((top.title.clone(), top.app_id)))?; } diff --git a/src/modules/launcher/mod.rs b/src/modules/launcher/mod.rs index 130be62..5630062 100644 --- a/src/modules/launcher/mod.rs +++ b/src/modules/launcher/mod.rs @@ -214,24 +214,19 @@ impl Module for LauncherModule { }; } ToplevelChange::Focus(focused) => { - // TODO: Flatten this - let update_title = if focused { + let mut update_title = false; + + if focused { if let Some(item) = lock!(items).get_mut(&app_id) { item.set_window_focused(window.id, true); // might be switching focus between windows of same app if item.windows.len() > 1 { item.set_window_name(window.id, window.title.clone()); - true - } else { - false + update_title = true; } - } else { - false } - } else { - false - }; + } send_update(LauncherUpdate::Focus(app_id.clone(), focused)).await?; @@ -266,7 +261,6 @@ impl Module for LauncherModule { if let Err(err) = Command::new("gtk-launch") .arg( file.file_name() - // TODO: Don't panic for this .expect("File segment missing from path to desktop file"), ) .stdout(Stdio::null()) diff --git a/src/script.rs b/src/script.rs index c767b9e..3895a72 100644 --- a/src/script.rs +++ b/src/script.rs @@ -131,8 +131,10 @@ impl From<&str> for Script { .take_while(|c| c.is_ascii_digit()) .collect::(); - // TODO: Handle this better than panicking - let interval = interval_str.parse::().expect("Invalid interval"); + let interval = interval_str.parse::().unwrap_or_else(|_| { + warn!("Received invalid interval in script string. Falling back to default `5000ms`."); + 5000 + }); (ScriptInputToken::Interval(interval), interval_str.len()) } // watching or polling