logiguard fork v2: patched GPUI on verified 8c74db0 tree
Rebuilt from the exact zed-industries/zed @ 8c74db00c4053d6c0a9037863d7bd048658da4ca tree (previous orphan was based on a stale/wrong fetch). Same 3-file patch: - serial.rs: add SerialKind::KeyboardEnter - client.rs: store wl_keyboard.enter serial; add latest_serial_of() - window.rs: activate() uses keyboard-enter serial (Mutter focus gate) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,104 @@
|
||||
use gpui::{
|
||||
FontFeatures, FontStyle, FontWeight, Modifiers, Pixels, SharedString,
|
||||
WindowBackgroundAppearance, px,
|
||||
};
|
||||
use settings_content::{
|
||||
FontFamilyName, FontFeaturesContent, FontSize, FontStyleContent, FontWeightContent,
|
||||
ModifiersContent, WindowBackgroundContent,
|
||||
};
|
||||
use std::sync::Arc;
|
||||
|
||||
/// A trait for converting settings content types into their GPUI equivalents.
|
||||
pub trait IntoGpui {
|
||||
type Output;
|
||||
fn into_gpui(self) -> Self::Output;
|
||||
}
|
||||
|
||||
impl IntoGpui for FontStyleContent {
|
||||
type Output = FontStyle;
|
||||
|
||||
fn into_gpui(self) -> Self::Output {
|
||||
match self {
|
||||
FontStyleContent::Normal => FontStyle::Normal,
|
||||
FontStyleContent::Italic => FontStyle::Italic,
|
||||
FontStyleContent::Oblique => FontStyle::Oblique,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl IntoGpui for FontWeightContent {
|
||||
type Output = FontWeight;
|
||||
|
||||
fn into_gpui(self) -> Self::Output {
|
||||
FontWeight(self.0.clamp(100., 950.))
|
||||
}
|
||||
}
|
||||
|
||||
impl IntoGpui for FontFeaturesContent {
|
||||
type Output = FontFeatures;
|
||||
|
||||
fn into_gpui(self) -> Self::Output {
|
||||
FontFeatures(Arc::new(self.0.into_iter().collect()))
|
||||
}
|
||||
}
|
||||
|
||||
impl IntoGpui for WindowBackgroundContent {
|
||||
type Output = WindowBackgroundAppearance;
|
||||
|
||||
fn into_gpui(self) -> Self::Output {
|
||||
match self {
|
||||
WindowBackgroundContent::Opaque => WindowBackgroundAppearance::Opaque,
|
||||
WindowBackgroundContent::Transparent => WindowBackgroundAppearance::Transparent,
|
||||
WindowBackgroundContent::Blurred => WindowBackgroundAppearance::Blurred,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl IntoGpui for ModifiersContent {
|
||||
type Output = Modifiers;
|
||||
|
||||
fn into_gpui(self) -> Self::Output {
|
||||
Modifiers {
|
||||
control: self.control,
|
||||
alt: self.alt,
|
||||
shift: self.shift,
|
||||
platform: self.platform,
|
||||
function: self.function,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl IntoGpui for FontSize {
|
||||
type Output = Pixels;
|
||||
|
||||
fn into_gpui(self) -> Self::Output {
|
||||
px(self.0)
|
||||
}
|
||||
}
|
||||
|
||||
impl IntoGpui for FontFamilyName {
|
||||
type Output = SharedString;
|
||||
|
||||
fn into_gpui(self) -> Self::Output {
|
||||
SharedString::from(self.0)
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use gpui::FontWeight;
|
||||
use settings_content::FontWeightContent;
|
||||
|
||||
#[test]
|
||||
fn test_font_weight_content_constants_match_gpui() {
|
||||
assert_eq!(FontWeightContent::THIN.0, FontWeight::THIN.0);
|
||||
assert_eq!(FontWeightContent::EXTRA_LIGHT.0, FontWeight::EXTRA_LIGHT.0);
|
||||
assert_eq!(FontWeightContent::LIGHT.0, FontWeight::LIGHT.0);
|
||||
assert_eq!(FontWeightContent::NORMAL.0, FontWeight::NORMAL.0);
|
||||
assert_eq!(FontWeightContent::MEDIUM.0, FontWeight::MEDIUM.0);
|
||||
assert_eq!(FontWeightContent::SEMIBOLD.0, FontWeight::SEMIBOLD.0);
|
||||
assert_eq!(FontWeightContent::BOLD.0, FontWeight::BOLD.0);
|
||||
assert_eq!(FontWeightContent::EXTRA_BOLD.0, FontWeight::EXTRA_BOLD.0);
|
||||
assert_eq!(FontWeightContent::BLACK.0, FontWeight::BLACK.0);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user