1
0
Fork 0
forked from wry/wry

seat: add FallbackOutputMode

This commit is contained in:
Julian Orth 2026-02-24 20:00:45 +01:00
parent ca6e3891af
commit 727a1bc68b
2 changed files with 35 additions and 1 deletions

View file

@ -523,6 +523,9 @@ impl ConfigProxyHandler {
seat: Seat, seat: Seat,
mode: FallbackOutputMode, mode: FallbackOutputMode,
) -> Result<(), CphError> { ) -> Result<(), CphError> {
let Ok(mode) = mode.try_into() else {
return Err(CphError::UnknownFallbackOutputMode(mode));
};
let seat = self.get_seat(seat)?; let seat = self.get_seat(seat)?;
seat.set_fallback_output_mode(mode); seat.set_fallback_output_mode(mode);
Ok(()) Ok(())
@ -3537,6 +3540,8 @@ enum CphError {
UnknownBarPosition(BarPosition), UnknownBarPosition(BarPosition),
#[error("Unknown gfx API {0:?}")] #[error("Unknown gfx API {0:?}")]
UnknownGfxApi(GfxApi), UnknownGfxApi(GfxApi),
#[error("Unknown fallback output mode {0:?}")]
UnknownFallbackOutputMode(FallbackOutputMode),
} }
trait WithRequestName { trait WithRequestName {

View file

@ -106,10 +106,11 @@ use {
}, },
ahash::AHashMap, ahash::AHashMap,
jay_config::{ jay_config::{
input::FallbackOutputMode, input::FallbackOutputMode as ConfigFallbackOutputMode,
keyboard::syms::{KeySym, SYM_Escape}, keyboard::syms::{KeySym, SYM_Escape},
}, },
kbvm::Keycode, kbvm::Keycode,
linearize::Linearize,
run_on_drop::on_drop, run_on_drop::on_drop,
smallvec::SmallVec, smallvec::SmallVec,
std::{ std::{
@ -258,6 +259,34 @@ enum MarkMode {
Jump, Jump,
} }
#[derive(Copy, Clone, Debug, Hash, Eq, PartialEq, Linearize)]
pub enum FallbackOutputMode {
Cursor,
Focus,
}
impl TryFrom<ConfigFallbackOutputMode> for FallbackOutputMode {
type Error = ();
fn try_from(value: ConfigFallbackOutputMode) -> Result<Self, Self::Error> {
let v = match value {
ConfigFallbackOutputMode::Cursor => FallbackOutputMode::Cursor,
ConfigFallbackOutputMode::Focus => FallbackOutputMode::Focus,
_ => return Err(()),
};
Ok(v)
}
}
impl Into<ConfigFallbackOutputMode> for FallbackOutputMode {
fn into(self) -> ConfigFallbackOutputMode {
match self {
FallbackOutputMode::Cursor => ConfigFallbackOutputMode::Cursor,
FallbackOutputMode::Focus => ConfigFallbackOutputMode::Focus,
}
}
}
const CHANGE_CURSOR_MOVED: u32 = 1 << 0; const CHANGE_CURSOR_MOVED: u32 = 1 << 0;
const CHANGE_TREE: u32 = 1 << 1; const CHANGE_TREE: u32 = 1 << 1;