Diff
diff --git a/src/bin/main.rs b/src/bin/main.rs
index 3926aff..7e166e8 100644
--- a/src/bin/main.rs
+++ b/src/bin/main.rs
@@ -26,11 +26,8 @@ fn main() -> Result<(), MainError> {
Err(e) => return Err(MainError::CouldNotStartWm(e)),
};
- if let Some(error) = config_error {
- // Change show_startup_config_error to accept a ConfigError instead of
- // a string slice.
- let error = format!("{error}");
- window_manager.show_startup_config_error(&error);
+ if let Some(warning) = config_warning {
+ window_manager.show_startup_config_error(warning);
}
let should_restart = match window_manager.run() {
diff --git a/src/window_manager.rs b/src/window_manager.rs
index b9d58ae..0e60503 100644
--- a/src/window_manager.rs
+++ b/src/window_manager.rs
@@ -1,7 +1,7 @@
use crate::Config;
use crate::bar::Bar;
use crate::client::{Client, TagMask};
-use crate::errors::WmError;
+use crate::errors::{ConfigError, WmError};
use crate::keyboard::{self, Arg, KeyAction, handlers};
use crate::layout::GapConfig;
use crate::layout::tiling::TilingLayout;
@@ -312,17 +312,18 @@ impl WindowManager {
Ok(window_manager)
}
- pub fn show_startup_config_error(&mut self, error: &str) {
+ pub fn show_startup_config_error(&mut self, error: ConfigError) {
let monitor = &self.monitors[self.selected_monitor];
let monitor_x = monitor.screen_x as i16;
let monitor_y = monitor.screen_y as i16;
let screen_width = monitor.screen_width as u16;
let screen_height = monitor.screen_height as u16;
+ let error = format!("{error}");
if let Err(e) = self.overlay.show_error(
&self.connection,
&self.font,
- error,
+ error.as_str(),
monitor_x,
monitor_y,
screen_width,