From 0e65f93a230cb5ab010b43962fd2e829945c291b Mon Sep 17 00:00:00 2001 From: Jake Stanger Date: Sat, 20 May 2023 13:17:07 +0100 Subject: [PATCH] fix: excess popup windows Previously a popup window was created for each section of each bar. This reduces it to a single popup window per bar. Fixes #150. --- src/bar.rs | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/src/bar.rs b/src/bar.rs index 34cc8de..052ba41 100644 --- a/src/bar.rs +++ b/src/bar.rs @@ -163,19 +163,23 @@ fn load_modules( }; } + // popup ignores module location so can bodge this for now + let popup = Popup::new(&info!(ModuleLocation::Left), config.popup_gap); + let popup = Arc::new(RwLock::new(popup)); + if let Some(modules) = config.start { let info = info!(ModuleLocation::Left); - add_modules(left, modules, &info, config.popup_gap)?; + add_modules(left, modules, &info, &popup)?; } if let Some(modules) = config.center { let info = info!(ModuleLocation::Center); - add_modules(center, modules, &info, config.popup_gap)?; + add_modules(center, modules, &info, &popup)?; } if let Some(modules) = config.end { let info = info!(ModuleLocation::Right); - add_modules(right, modules, &info, config.popup_gap)?; + add_modules(right, modules, &info, &popup)?; } Ok(()) @@ -187,11 +191,8 @@ fn add_modules( content: >k::Box, modules: Vec, info: &ModuleInfo, - popup_gap: i32, + popup: &Arc>, ) -> Result<()> { - let popup = Popup::new(info, popup_gap); - let popup = Arc::new(RwLock::new(popup)); - let orientation = info.bar_position.get_orientation(); macro_rules! add_module {