diff options
author | Max Brunsfeld <maxbrunsfeld@gmail.com> | 2023-08-17 10:33:29 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-08-17 17:33:29 +0000 |
commit | 33306142195b354ef3485ca2b1d8a85dfc6605ca (patch) | |
tree | fb64a15200b7f5e002eeaed6199f33441fdabc1b /alacritty/src/config/window.rs | |
parent | 6143b3f4eb352ff4ab36149ce5ba8c6ab04e415a (diff) | |
download | r-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.rs | 31 |
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, +} |