summaryrefslogtreecommitdiffstats
path: root/zellij-server/src/route.rs
diff options
context:
space:
mode:
Diffstat (limited to 'zellij-server/src/route.rs')
-rw-r--r--zellij-server/src/route.rs34
1 files changed, 33 insertions, 1 deletions
diff --git a/zellij-server/src/route.rs b/zellij-server/src/route.rs
index dce1c9ac0..3de62c092 100644
--- a/zellij-server/src/route.rs
+++ b/zellij-server/src/route.rs
@@ -165,6 +165,12 @@ pub(crate) fn route_action(
.send_to_screen(screen_instr)
.with_context(err_context)?;
},
+ Action::MovePaneBackwards => {
+ session
+ .senders
+ .send_to_screen(ScreenInstruction::MovePaneBackwards(client_id))
+ .with_context(err_context)?;
+ },
Action::DumpScreen(val, full) => {
session
.senders
@@ -436,8 +442,18 @@ pub(crate) fn route_action(
.send_to_screen(ScreenInstruction::CloseFocusedPane(client_id))
.with_context(err_context)?;
},
- Action::NewTab(tab_layout, floating_panes_layout, tab_name) => {
+ Action::NewTab(
+ tab_layout,
+ floating_panes_layout,
+ swap_tiled_layouts,
+ swap_floating_layouts,
+ tab_name,
+ ) => {
let shell = session.default_shell.clone();
+ let swap_tiled_layouts =
+ swap_tiled_layouts.unwrap_or_else(|| session.layout.swap_tiled_layouts.clone());
+ let swap_floating_layouts = swap_floating_layouts
+ .unwrap_or_else(|| session.layout.swap_floating_layouts.clone());
session
.senders
.send_to_screen(ScreenInstruction::NewTab(
@@ -445,6 +461,7 @@ pub(crate) fn route_action(
tab_layout,
floating_panes_layout,
tab_name,
+ (swap_tiled_layouts, swap_floating_layouts),
client_id,
))
.with_context(err_context)?;
@@ -480,10 +497,13 @@ pub(crate) fn route_action(
.with_context(err_context)?;
},
Action::GoToTabName(name, create) => {
+ let swap_tiled_layouts = session.layout.swap_tiled_layouts.clone();
+ let swap_floating_layouts = session.layout.swap_floating_layouts.clone();
session
.senders
.send_to_screen(ScreenInstruction::GoToTabName(
name,
+ (swap_tiled_layouts, swap_floating_layouts),
create,
Some(client_id),
))
@@ -626,6 +646,18 @@ pub(crate) fn route_action(
.with_context(err_context)?;
},
Action::ToggleMouseMode => {}, // Handled client side
+ Action::PreviousSwapLayout => {
+ session
+ .senders
+ .send_to_screen(ScreenInstruction::PreviousSwapLayout(client_id))
+ .with_context(err_context)?;
+ },
+ Action::NextSwapLayout => {
+ session
+ .senders
+ .send_to_screen(ScreenInstruction::NextSwapLayout(client_id))
+ .with_context(err_context)?;
+ },
}
Ok(should_break)
}