diff options
| author | Aram Drevekenin <aram@poor.dev> | 2024-12-31 12:37:23 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-12-31 12:37:23 +0100 |
| commit | 42adc8cd048c03d52a9f33503d75e24364adbc68 (patch) | |
| tree | 943ee11e188e6512b336b603bdd5ea8eae38998b /zellij-server/src/plugins | |
| parent | docs(changelog): cursor overflow fix (diff) | |
| download | sl0ppij-42adc8cd048c03d52a9f33503d75e24364adbc68.tar.gz sl0ppij-42adc8cd048c03d52a9f33503d75e24364adbc68.tar.xz sl0ppij-42adc8cd048c03d52a9f33503d75e24364adbc68.zip | |
feat(ux): stack panes command (#3905)
* working across tabs and floating panes through the cli
* finalize cli command
* plugin api
* style(fmt): rustfmt
* fix: re-focus pane in stack if it was focused
* style(fmt): rustfmt
* remove outdated comment
Diffstat (limited to 'zellij-server/src/plugins')
| -rw-r--r-- | zellij-server/src/plugins/zellij_exports.rs | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/zellij-server/src/plugins/zellij_exports.rs b/zellij-server/src/plugins/zellij_exports.rs index 4cd734de..5fba8aaa 100644 --- a/zellij-server/src/plugins/zellij_exports.rs +++ b/zellij-server/src/plugins/zellij_exports.rs @@ -358,6 +358,9 @@ fn host_run_plugin_command(caller: Caller<'_, PluginEnv>) { PluginCommand::SetFloatingPanePinned(pane_id, should_be_pinned) => { set_floating_pane_pinned(env, pane_id.into(), should_be_pinned) }, + PluginCommand::StackPanes(pane_ids) => { + stack_panes(env, pane_ids.into_iter().map(|p_id| p_id.into()).collect()) + }, }, (PermissionStatus::Denied, permission) => { log::error!( @@ -1521,6 +1524,12 @@ fn set_floating_pane_pinned(env: &PluginEnv, pane_id: PaneId, should_be_pinned: }); } +fn stack_panes(env: &PluginEnv, pane_ids: Vec<PaneId>) { + let _ = env + .senders + .send_to_screen(ScreenInstruction::StackPanes(pane_ids)); +} + fn scan_host_folder(env: &PluginEnv, folder_to_scan: PathBuf) { if !folder_to_scan.starts_with("/host") { log::error!( @@ -1940,6 +1949,7 @@ fn check_command_permission( | PluginCommand::ReloadPlugin(..) | PluginCommand::LoadNewPlugin { .. } | PluginCommand::SetFloatingPanePinned(..) + | PluginCommand::StackPanes(..) | PluginCommand::KillSessions(..) => PermissionType::ChangeApplicationState, PluginCommand::UnblockCliPipeInput(..) | PluginCommand::BlockCliPipeInput(..) |
