aboutsummaryrefslogtreecommitdiffstats
path: root/zellij-utils/src/plugin_api/action.rs
diff options
context:
space:
mode:
authorAram Drevekenin <aram@poor.dev>2026-01-15 14:10:59 +0100
committerGitHub <noreply@github.com>2026-01-15 14:10:59 +0100
commit005769cfa58b65cc6b2d6ce273ad367bf802bfb0 (patch)
tree1912882005cc78bd27d53414ab672b6a13ecd4c8 /zellij-utils/src/plugin_api/action.rs
parentfix: properly quit welcome screen when switching sessions (#4605) (diff)
downloadsl0ppij-005769cfa58b65cc6b2d6ce273ad367bf802bfb0.tar.gz
sl0ppij-005769cfa58b65cc6b2d6ce273ad367bf802bfb0.tar.xz
sl0ppij-005769cfa58b65cc6b2d6ce273ad367bf802bfb0.zip
Fix: allow 0% coordinate specification for floating panes (#4609)
* fix: allow 0% when specifying x/y coordinates but not when specifying width/height * rustfmt * add pr
Diffstat (limited to 'zellij-utils/src/plugin_api/action.rs')
-rw-r--r--zellij-utils/src/plugin_api/action.rs26
1 files changed, 26 insertions, 0 deletions
diff --git a/zellij-utils/src/plugin_api/action.rs b/zellij-utils/src/plugin_api/action.rs
index aa4c8b09..96074948 100644
--- a/zellij-utils/src/plugin_api/action.rs
+++ b/zellij-utils/src/plugin_api/action.rs
@@ -2212,6 +2212,32 @@ impl TryFrom<SplitSize> for ProtobufSplitSize {
}
}
+impl TryFrom<ProtobufSplitSize> for PercentOrFixed {
+ type Error = &'static str;
+ fn try_from(protobuf_split_size: ProtobufSplitSize) -> Result<Self, &'static str> {
+ use super::generated_api::api::action::split_size::SplitSizeVariant;
+
+ match protobuf_split_size.split_size_variant {
+ Some(SplitSizeVariant::Percent(p)) => Ok(PercentOrFixed::Percent(p as usize)),
+ Some(SplitSizeVariant::Fixed(f)) => Ok(PercentOrFixed::Fixed(f as usize)),
+ None => Err("PercentOrFixed must have either percent or fixed value"),
+ }
+ }
+}
+
+impl TryFrom<PercentOrFixed> for ProtobufSplitSize {
+ type Error = &'static str;
+ fn try_from(percent_or_fixed: PercentOrFixed) -> Result<Self, &'static str> {
+ use super::generated_api::api::action::split_size::SplitSizeVariant;
+
+ let split_size_variant = match percent_or_fixed {
+ PercentOrFixed::Percent(p) => Some(SplitSizeVariant::Percent(p as u32)),
+ PercentOrFixed::Fixed(f) => Some(SplitSizeVariant::Fixed(f as u32)),
+ };
+ Ok(ProtobufSplitSize { split_size_variant })
+ }
+}
+
// FloatingPaneCoordinates conversions
impl TryFrom<ProtobufFloatingPaneCoordinates> for FloatingPaneCoordinates {
type Error = &'static str;