diff options
| author | Aram Drevekenin <aram@poor.dev> | 2024-12-16 16:03:20 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-12-16 16:03:20 +0100 |
| commit | dd291e2a1f9b4ee3eb1a947e1501a54b10663ea7 (patch) | |
| tree | 0ae41e8175d2a3fd260b3c510a30502f6386ac7f /zellij-utils/src/session_serialization.rs | |
| parent | docs(changelog): multiplayer cursor fix (diff) | |
| download | sl0ppij-dd291e2a1f9b4ee3eb1a947e1501a54b10663ea7.tar.gz sl0ppij-dd291e2a1f9b4ee3eb1a947e1501a54b10663ea7.tar.xz sl0ppij-dd291e2a1f9b4ee3eb1a947e1501a54b10663ea7.zip | |
feat(ux): pin floating panes (#3876)
* working
* ui indication
* add keybinding
* add to plugin panes
* fix with multiple cursors
* toggle with the mouse
* fix e2e tests and add new one
* some cleanups
* add to layouts
* make mouse click more lenient
* allow setting a new floating pane as pinned
* make toggle work throughthe command line
* add to plugin api
* get tests to pass
* style(fmt): rustfmt
Diffstat (limited to 'zellij-utils/src/session_serialization.rs')
| -rw-r--r-- | zellij-utils/src/session_serialization.rs | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/zellij-utils/src/session_serialization.rs b/zellij-utils/src/session_serialization.rs index 68a9c2da..3cb7c5eb 100644 --- a/zellij-utils/src/session_serialization.rs +++ b/zellij-utils/src/session_serialization.rs @@ -453,6 +453,14 @@ fn serialize_floating_layout_attributes( }, None => {}, } + match layout.pinned { + Some(true) => { + let mut node = KdlNode::new("pinned"); + node.entries_mut().push(KdlEntry::new(KdlValue::Bool(true))); + pane_node_children.nodes_mut().push(node); + }, + _ => {}, + } } fn serialize_start_suspended(command: &Option<String>, pane_node_children: &mut KdlDocument) { @@ -774,6 +782,7 @@ fn get_floating_panes_layout_from_panegeoms( width: Some(m.geom.cols.into()), x: Some(PercentOrFixed::Fixed(m.geom.x)), y: Some(PercentOrFixed::Fixed(m.geom.y)), + pinned: Some(m.geom.is_pinned), run, focus: Some(m.is_focused), already_running: false, @@ -1275,6 +1284,7 @@ mod tests { rows: Dimension::fixed(10), cols: Dimension::fixed(10), is_stacked: false, + is_pinned: false, }, ..Default::default() }, @@ -1286,6 +1296,7 @@ mod tests { rows: Dimension::fixed(10), cols: Dimension::fixed(10), is_stacked: false, + is_pinned: false, }, ..Default::default() }, @@ -1301,6 +1312,7 @@ mod tests { rows: Dimension::fixed(10), cols: Dimension::fixed(10), is_stacked: false, + is_pinned: false, }, ..Default::default() }, @@ -1315,6 +1327,7 @@ mod tests { rows: Dimension::fixed(10), cols: Dimension::fixed(10), is_stacked: false, + is_pinned: false, }, ..Default::default() }, @@ -1334,6 +1347,7 @@ mod tests { rows: Dimension::fixed(10), cols: Dimension::fixed(10), is_stacked: false, + is_pinned: false, }, ..Default::default() }, @@ -1347,6 +1361,7 @@ mod tests { rows: Dimension::fixed(10), cols: Dimension::fixed(10), is_stacked: false, + is_pinned: false, }, ..Default::default() }, @@ -1362,6 +1377,7 @@ mod tests { rows: Dimension::fixed(10), cols: Dimension::fixed(10), is_stacked: false, + is_pinned: false, }, ..Default::default() }, @@ -1373,6 +1389,7 @@ mod tests { rows: Dimension::fixed(10), cols: Dimension::fixed(10), is_stacked: false, + is_pinned: false, }, ..Default::default() }, @@ -1386,6 +1403,7 @@ mod tests { rows: Dimension::fixed(10), cols: Dimension::fixed(10), is_stacked: false, + is_pinned: false, }, ..Default::default() }, @@ -1415,6 +1433,7 @@ mod tests { rows: Dimension::fixed(10), cols: Dimension::fixed(10), is_stacked: false, + is_pinned: false, }, ..Default::default() }, @@ -1426,6 +1445,7 @@ mod tests { rows: Dimension::fixed(10), cols: Dimension::fixed(10), is_stacked: false, + is_pinned: false, }, ..Default::default() }, @@ -1441,6 +1461,7 @@ mod tests { rows: Dimension::fixed(10), cols: Dimension::fixed(10), is_stacked: false, + is_pinned: false, }, ..Default::default() }, @@ -1455,6 +1476,7 @@ mod tests { rows: Dimension::fixed(10), cols: Dimension::fixed(10), is_stacked: false, + is_pinned: false, }, ..Default::default() }, @@ -1474,6 +1496,7 @@ mod tests { rows: Dimension::fixed(10), cols: Dimension::fixed(10), is_stacked: false, + is_pinned: false, }, ..Default::default() }, @@ -1487,6 +1510,7 @@ mod tests { rows: Dimension::fixed(10), cols: Dimension::fixed(10), is_stacked: false, + is_pinned: false, }, ..Default::default() }, @@ -1502,6 +1526,7 @@ mod tests { rows: Dimension::fixed(10), cols: Dimension::fixed(10), is_stacked: false, + is_pinned: false, }, ..Default::default() }, @@ -1515,6 +1540,7 @@ mod tests { rows: Dimension::fixed(10), cols: Dimension::fixed(10), is_stacked: false, + is_pinned: false, }, ..Default::default() }, @@ -1528,6 +1554,7 @@ mod tests { rows: Dimension::fixed(10), cols: Dimension::fixed(10), is_stacked: false, + is_pinned: false, }, ..Default::default() }, @@ -1555,6 +1582,7 @@ mod tests { rows: Dimension::fixed(1), cols: Dimension::fixed(10), is_stacked: true, + is_pinned: false, }, ..Default::default() }, @@ -1565,6 +1593,7 @@ mod tests { rows: Dimension::fixed(10), cols: Dimension::fixed(10), is_stacked: true, + is_pinned: false, }, ..Default::default() }, @@ -1575,6 +1604,7 @@ mod tests { rows: Dimension::fixed(1), cols: Dimension::fixed(10), is_stacked: true, + is_pinned: false, }, ..Default::default() }, @@ -1598,6 +1628,7 @@ mod tests { rows: Dimension::percent(100.0), cols: Dimension::percent(100.0), is_stacked: false, + is_pinned: false, }, ..Default::default() }], @@ -1612,6 +1643,7 @@ mod tests { rows: Dimension::fixed(10), cols: Dimension::fixed(10), is_stacked: false, + is_pinned: false, }, ..Default::default() }, @@ -1622,6 +1654,7 @@ mod tests { rows: Dimension::fixed(10), cols: Dimension::fixed(10), is_stacked: false, + is_pinned: false, }, ..Default::default() }, @@ -1753,6 +1786,7 @@ mod tests { rows: get_dim(&data["rows"]), cols: get_dim(&data["cols"]), is_stacked: data["is_stacked"].to_string().parse().unwrap(), + is_pinned: false, } } |
