Wayland compositor (wlroots)
git clone https://git.lucas.co/cce-compositor.git
Fix border color parsing bug by replicating color channel bytes to 32-bit format
src/server/config.rs | 16 ++++++++--------
src/server/window_manager.rs | 6 +++---
2 files changed, 11 insertions(+), 11 deletions(-)
diff --git a/src/server/config.rs b/src/server/config.rs
index 2851851..565590e 100644
--- a/src/server/config.rs
+++ b/src/server/config.rs
@@ -570,16 +570,16 @@ pub fn parse_config(path: &str, state: &mut crate::window_manager::WindowManager
state.layout.floating_border_width = config.layout.floating_border_width as i32;
let border_color_val = parse_hex_color(&config.layout.border_color);
- state.layout.border_r = (border_color_val >> 16) & 0xFF;
- state.layout.border_g = (border_color_val >> 8) & 0xFF;
- state.layout.border_b = border_color_val & 0xFF;
- state.layout.border_a = 255;
+ state.layout.border_r = ((border_color_val >> 16) & 0xFF) * 0x01010101;
+ state.layout.border_g = ((border_color_val >> 8) & 0xFF) * 0x01010101;
+ state.layout.border_b = (border_color_val & 0xFF) * 0x01010101;
+ state.layout.border_a = 0xFFFFFFFF;
let background_color_val = parse_hex_color(&config.layout.background_color);
- state.layout.background_r = (background_color_val >> 16) & 0xFF;
- state.layout.background_g = (background_color_val >> 8) & 0xFF;
- state.layout.background_b = background_color_val & 0xFF;
- state.layout.background_a = 255;
+ state.layout.background_r = ((background_color_val >> 16) & 0xFF) * 0x01010101;
+ state.layout.background_g = ((background_color_val >> 8) & 0xFF) * 0x01010101;
+ state.layout.background_b = (background_color_val & 0xFF) * 0x01010101;
+ state.layout.background_a = 0xFFFFFFFF;
state.layout.border_font_size = config.layout.border_font_size as i32;
state.layout.transition_duration = config.layout.transition_duration as i32;
diff --git a/src/server/window_manager.rs b/src/server/window_manager.rs
index 3ef7482..306b6f3 100644
--- a/src/server/window_manager.rs
+++ b/src/server/window_manager.rs
@@ -1503,9 +1503,9 @@ impl WindowManager {
"transition_duration" => { if let Ok(v) = val.parse::<i32>() { self.layout.transition_duration = v; } }
"border_color" => {
let border_color_val = crate::config::parse_hex_color(val);
- self.layout.border_r = (border_color_val >> 16) & 0xFF;
- self.layout.border_g = (border_color_val >> 8) & 0xFF;
- self.layout.border_b = border_color_val & 0xFF;
+ self.layout.border_r = ((border_color_val >> 16) & 0xFF) * 0x01010101;
+ self.layout.border_g = ((border_color_val >> 8) & 0xFF) * 0x01010101;
+ self.layout.border_b = (border_color_val & 0xFF) * 0x01010101;
}
"side_panel_width" => { if let Ok(v) = val.parse::<i32>() { self.layout.side_panel_width = v; } }
"side_panel_behavior" => { self.layout.side_panel_behavior = val.to_string(); }