aboutsummaryrefslogtreecommitdiff
path: root/alacritty/src
diff options
context:
space:
mode:
Diffstat (limited to 'alacritty/src')
-rw-r--r--alacritty/src/config/window.rs22
-rw-r--r--alacritty/src/display/window.rs3
2 files changed, 23 insertions, 2 deletions
diff --git a/alacritty/src/config/window.rs b/alacritty/src/config/window.rs
index 380f7a6f..358bb76d 100644
--- a/alacritty/src/config/window.rs
+++ b/alacritty/src/config/window.rs
@@ -6,7 +6,7 @@ use serde::{Deserialize, Deserializer, Serialize};
#[cfg(target_os = "macos")]
use winit::platform::macos::OptionAsAlt as WinitOptionAsAlt;
-use winit::window::{Fullscreen, Theme as WinitTheme};
+use winit::window::{Fullscreen, Theme as WinitTheme, WindowLevel as WinitWindowLevel};
use alacritty_config_derive::{ConfigDeserialize, SerdeReplace};
@@ -61,6 +61,9 @@ pub struct WindowConfig {
/// System decorations theme variant.
decorations_theme_variant: Option<Theme>,
+
+ /// Window level.
+ pub level: WindowLevel,
}
impl Default for WindowConfig {
@@ -80,6 +83,7 @@ impl Default for WindowConfig {
resize_increments: Default::default(),
decorations_theme_variant: Default::default(),
option_as_alt: Default::default(),
+ level: Default::default(),
}
}
}
@@ -306,3 +310,19 @@ impl From<Theme> for WinitTheme {
}
}
}
+
+#[derive(ConfigDeserialize, Default, Debug, Clone, Copy, PartialEq, Eq)]
+pub enum WindowLevel {
+ #[default]
+ Normal,
+ AlwaysOnTop,
+}
+
+impl From<WindowLevel> for WinitWindowLevel {
+ fn from(level: WindowLevel) -> Self {
+ match level {
+ WindowLevel::Normal => WinitWindowLevel::Normal,
+ WindowLevel::AlwaysOnTop => WinitWindowLevel::AlwaysOnTop,
+ }
+ }
+}
diff --git a/alacritty/src/display/window.rs b/alacritty/src/display/window.rs
index 3d6989a0..1f1e7402 100644
--- a/alacritty/src/display/window.rs
+++ b/alacritty/src/display/window.rs
@@ -169,7 +169,8 @@ impl Window {
.with_transparent(true)
.with_blur(config.window.blur)
.with_maximized(config.window.maximized())
- .with_fullscreen(config.window.fullscreen());
+ .with_fullscreen(config.window.fullscreen())
+ .with_window_level(config.window.level.into());
let window = event_loop.create_window(window_attributes)?;