summaryrefslogtreecommitdiffstats
path: root/zellij-server/src/screen.rs
diff options
context:
space:
mode:
Diffstat (limited to 'zellij-server/src/screen.rs')
-rw-r--r--zellij-server/src/screen.rs58
1 files changed, 26 insertions, 32 deletions
diff --git a/zellij-server/src/screen.rs b/zellij-server/src/screen.rs
index 3ead87924..6d93ee2c4 100644
--- a/zellij-server/src/screen.rs
+++ b/zellij-server/src/screen.rs
@@ -14,8 +14,8 @@ use zellij_utils::pane_size::{Size, SizeInPixels};
use zellij_utils::{
input::command::TerminalAction,
input::layout::{
- FloatingPaneLayout, Run, RunPlugin, RunPluginLocation, SwapFloatingLayout, SwapTiledLayout,
- TiledPaneLayout,
+ FloatingPaneLayout, PluginUserConfiguration, Run, RunPlugin, RunPluginLocation,
+ SwapFloatingLayout, SwapTiledLayout, TiledPaneLayout,
},
position::Position,
};
@@ -258,11 +258,11 @@ pub enum ScreenInstruction {
PreviousSwapLayout(ClientId),
NextSwapLayout(ClientId),
QueryTabNames(ClientId),
- NewTiledPluginPane(RunPluginLocation, Option<String>, ClientId), // Option<String> is
+ NewTiledPluginPane(RunPlugin, Option<String>, ClientId), // Option<String> is
// optional pane title
- NewFloatingPluginPane(RunPluginLocation, Option<String>, ClientId), // Option<String> is an
- StartOrReloadPluginPane(RunPlugin, Option<String>),
+ NewFloatingPluginPane(RunPlugin, Option<String>, ClientId), // Option<String> is an
// optional pane title
+ StartOrReloadPluginPane(RunPlugin, Option<String>),
AddPlugin(
Option<bool>, // should_float
RunPlugin,
@@ -2632,14 +2632,10 @@ pub(crate) fn screen_thread_main(
.senders
.send_to_server(ServerInstruction::Log(tab_names, client_id))?;
},
- ScreenInstruction::NewTiledPluginPane(run_plugin_location, pane_title, client_id) => {
+ ScreenInstruction::NewTiledPluginPane(run_plugin, pane_title, client_id) => {
let tab_index = screen.active_tab_indices.values().next().unwrap_or(&1);
let size = Size::default();
let should_float = Some(false);
- let run_plugin = RunPlugin {
- _allow_exec_host_cmd: false,
- location: run_plugin_location,
- };
screen.bus.senders.send_to_plugin(PluginInstruction::Load(
should_float,
pane_title,
@@ -2649,28 +2645,26 @@ pub(crate) fn screen_thread_main(
size,
))?;
},
- ScreenInstruction::NewFloatingPluginPane(
- run_plugin_location,
- pane_title,
- client_id,
- ) => {
- let tab_index = screen.active_tab_indices.values().next().unwrap(); // TODO: no
- // unwrap and
- // better
- let size = Size::default(); // TODO: ???
- let should_float = Some(true);
- let run_plugin = RunPlugin {
- _allow_exec_host_cmd: false,
- location: run_plugin_location,
- };
- screen.bus.senders.send_to_plugin(PluginInstruction::Load(
- should_float,
- pane_title,
- run_plugin,
- *tab_index,
- client_id,
- size,
- ))?;
+ ScreenInstruction::NewFloatingPluginPane(run_plugin, pane_title, client_id) => {
+ match screen.active_tab_indices.values().next() {
+ Some(tab_index) => {
+ let size = Size::default();
+ let should_float = Some(true);
+ screen.bus.senders.send_to_plugin(PluginInstruction::Load(
+ should_float,
+ pane_title,
+ run_plugin,
+ *tab_index,
+ client_id,
+ size,
+ ))?;
+ },
+ None => {
+ log::error!(
+ "Could not find an active tab - is there at least 1 connected user?"
+ );
+ },
+ }
},
ScreenInstruction::StartOrReloadPluginPane(run_plugin, pane_title) => {
let tab_index = screen.active_tab_indices.values().next().unwrap_or(&1);