pub struct PaneCapabilityMatrix {
pub mux: PaneMuxEnvironment,
pub mouse_sgr: bool,
pub mouse_drag_reliable: bool,
pub mouse_button_discrimination: bool,
pub focus_events: bool,
pub bracketed_paste: bool,
pub unicode_box_drawing: bool,
pub true_color: bool,
pub degraded: bool,
}Expand description
Resolved capability matrix describing which pane interaction features are available in the current terminal + multiplexer environment.
Derived from [TerminalCapabilities] via PaneCapabilityMatrix::from_capabilities.
The adapter uses this to decide which code-paths are safe and which
need deterministic fallbacks.
Fields§
§mux: PaneMuxEnvironmentDetected multiplexer environment.
mouse_sgr: boolSGR (1006) extended mouse protocol available. Without this, mouse coordinates are limited to 223 columns/rows.
mouse_drag_reliable: boolMouse drag events are reliably delivered. False in some screen versions where drag tracking is incomplete.
Mouse button events include correct button identity on release. X10/normal mode sends button 3 for all releases; SGR preserves it.
focus_events: boolTerminal delivers CSI I / CSI O focus events.
bracketed_paste: boolBracketed paste mode available (affects interaction cancel heuristics).
unicode_box_drawing: boolUnicode box-drawing glyphs available for splitter rendering.
true_color: boolTrue-color support for splitter highlight/drag feedback.
degraded: boolOne or more pane features are degraded due to environment constraints.
Implementations§
Source§impl PaneCapabilityMatrix
impl PaneCapabilityMatrix
Sourcepub fn from_capabilities(caps: &TerminalCapabilities) -> Self
pub fn from_capabilities(caps: &TerminalCapabilities) -> Self
Derive the pane capability matrix from terminal capabilities.
This is the single source of truth for which pane features are available. All fallback decisions flow from this matrix.
Sourcepub const fn drag_enabled(&self) -> bool
pub const fn drag_enabled(&self) -> bool
Whether pane drag interactions should be enabled at all.
Drag requires at minimum mouse event support. If drag events are unreliable (e.g. GNU Screen), drag is disabled and the adapter falls back to keyboard-only resize.
Sourcepub const fn focus_cancel_effective(&self) -> bool
pub const fn focus_cancel_effective(&self) -> bool
Whether focus-loss auto-cancel is effective.
When focus events are unavailable, the adapter cannot detect window blur — interactions must rely on timeout or explicit keyboard cancel instead.
Sourcepub fn limitations(&self) -> Vec<PaneCapabilityLimitation>
pub fn limitations(&self) -> Vec<PaneCapabilityLimitation>
Collect all active limitations with their fallback descriptions.
Trait Implementations§
Source§impl Clone for PaneCapabilityMatrix
impl Clone for PaneCapabilityMatrix
Source§fn clone(&self) -> PaneCapabilityMatrix
fn clone(&self) -> PaneCapabilityMatrix
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for PaneCapabilityMatrix
impl Debug for PaneCapabilityMatrix
Source§impl PartialEq for PaneCapabilityMatrix
impl PartialEq for PaneCapabilityMatrix
impl Copy for PaneCapabilityMatrix
impl Eq for PaneCapabilityMatrix
impl StructuralPartialEq for PaneCapabilityMatrix
Auto Trait Implementations§
impl Freeze for PaneCapabilityMatrix
impl RefUnwindSafe for PaneCapabilityMatrix
impl Send for PaneCapabilityMatrix
impl Sync for PaneCapabilityMatrix
impl Unpin for PaneCapabilityMatrix
impl UnsafeUnpin for PaneCapabilityMatrix
impl UnwindSafe for PaneCapabilityMatrix
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.