aboutsummaryrefslogtreecommitdiff
path: root/alacritty/src/config/window.rs
diff options
context:
space:
mode:
authorMax Brunsfeld <maxbrunsfeld@gmail.com>2023-08-17 10:33:29 -0700
committerGitHub <noreply@github.com>2023-08-17 17:33:29 +0000
commit33306142195b354ef3485ca2b1d8a85dfc6605ca (patch)
treefb64a15200b7f5e002eeaed6199f33441fdabc1b /alacritty/src/config/window.rs
parent6143b3f4eb352ff4ab36149ce5ba8c6ab04e415a (diff)
downloadr-alacritty-33306142195b354ef3485ca2b1d8a85dfc6605ca.tar.gz
r-alacritty-33306142195b354ef3485ca2b1d8a85dfc6605ca.tar.bz2
r-alacritty-33306142195b354ef3485ca2b1d8a85dfc6605ca.zip
Remove winit dependency from alacritty_config
Diffstat (limited to 'alacritty/src/config/window.rs')
-rw-r--r--alacritty/src/config/window.rs31
1 files changed, 29 insertions, 2 deletions
diff --git a/alacritty/src/config/window.rs b/alacritty/src/config/window.rs
index e4236b99..d546f686 100644
--- a/alacritty/src/config/window.rs
+++ b/alacritty/src/config/window.rs
@@ -7,7 +7,7 @@ use serde::{Deserialize, Deserializer, Serialize};
use winit::window::{Fullscreen, Theme};
#[cfg(target_os = "macos")]
-use winit::platform::macos::OptionAsAlt;
+use winit::platform::macos::OptionAsAlt as WinitOptionAsAlt;
use alacritty_config_derive::{ConfigDeserialize, SerdeReplace};
use alacritty_terminal::config::{Percentage, LOG_TARGET_CONFIG};
@@ -51,7 +51,7 @@ pub struct WindowConfig {
/// Controls which `Option` key should be treated as `Alt`.
#[cfg(target_os = "macos")]
- pub option_as_alt: OptionAsAlt,
+ option_as_alt: OptionAsAlt,
/// Resize increments.
pub resize_increments: bool,
@@ -137,6 +137,16 @@ impl WindowConfig {
pub fn maximized(&self) -> bool {
self.startup_mode == StartupMode::Maximized
}
+
+ #[cfg(target_os = "macos")]
+ pub fn option_as_alt(&self) -> WinitOptionAsAlt {
+ match self.option_as_alt {
+ OptionAsAlt::OnlyLeft => WinitOptionAsAlt::OnlyLeft,
+ OptionAsAlt::OnlyRight => WinitOptionAsAlt::OnlyRight,
+ OptionAsAlt::Both => WinitOptionAsAlt::Both,
+ OptionAsAlt::None => WinitOptionAsAlt::None,
+ }
+ }
}
#[derive(ConfigDeserialize, Debug, Clone, PartialEq, Eq)]
@@ -263,3 +273,20 @@ impl<'de> Deserialize<'de> for Class {
deserializer.deserialize_any(ClassVisitor)
}
}
+
+#[cfg(target_os = "macos")]
+#[derive(ConfigDeserialize, Default, Debug, Clone, Copy, PartialEq, Eq)]
+pub enum OptionAsAlt {
+ /// The left `Option` key is treated as `Alt`.
+ OnlyLeft,
+
+ /// The right `Option` key is treated as `Alt`.
+ OnlyRight,
+
+ /// Both `Option` keys are treated as `Alt`.
+ Both,
+
+ /// No special handling is applied for `Option` key.
+ #[default]
+ None,
+}