diff --git a/cosmic-panel-bin/src/space_container/toplevel.rs b/cosmic-panel-bin/src/space_container/toplevel.rs index 163ab07c..59e66f3a 100644 --- a/cosmic-panel-bin/src/space_container/toplevel.rs +++ b/cosmic-panel-bin/src/space_container/toplevel.rs @@ -139,7 +139,7 @@ impl SpaceContainer { let opacity = if maximized { config.maximize(); - 1.0 + config.opacity } else { if let Some(c) = c { config = c.clone(); diff --git a/cosmic-panel-config/src/container_config.rs b/cosmic-panel-config/src/container_config.rs index 925859b9..d649ff4e 100644 --- a/cosmic-panel-config/src/container_config.rs +++ b/cosmic-panel-config/src/container_config.rs @@ -173,6 +173,7 @@ impl Default for CosmicPanelContainerConfig { opacity: 1.0, autohover_delay_ms: Some(500), padding_overlap: 0.5, + keep_style_on_maximize: false, }, CosmicPanelConfig { name: "Dock".to_string(), @@ -209,6 +210,7 @@ impl Default for CosmicPanelContainerConfig { opacity: 1.0, autohover_delay_ms: Some(500), padding_overlap: 0.5, + keep_style_on_maximize: false, }, ], } diff --git a/cosmic-panel-config/src/panel_config.rs b/cosmic-panel-config/src/panel_config.rs index bcdbfe1e..6a78a54c 100644 --- a/cosmic-panel-config/src/panel_config.rs +++ b/cosmic-panel-config/src/panel_config.rs @@ -416,6 +416,9 @@ pub struct CosmicPanelConfig { pub autohover_delay_ms: Option, /// padding overlap ratio pub padding_overlap: f32, + /// keep panel styling when windows are maximized + #[serde(default)] + pub keep_style_on_maximize: bool, } impl PartialEq for CosmicPanelConfig { @@ -442,6 +445,7 @@ impl PartialEq for CosmicPanelConfig { && self.size_center == other.size_center && self.size_wings == other.size_wings && (self.opacity - other.opacity).abs() < 0.01 + && self.keep_style_on_maximize == other.keep_style_on_maximize } } @@ -471,6 +475,7 @@ impl Default for CosmicPanelConfig { opacity: 0.8, autohover_delay_ms: Some(500), padding_overlap: 0.5, + keep_style_on_maximize: false, } } } @@ -689,6 +694,9 @@ impl CosmicPanelConfig { } pub fn maximize(&mut self) { + if self.keep_style_on_maximize { + return; + } self.opacity = 1.0; if self.autohide().is_some() { return;