aboutsummaryrefslogtreecommitdiffstats
path: root/zellij-server/src/plugins/wasm_bridge.rs
diff options
context:
space:
mode:
authorAram Drevekenin <aram@poor.dev>2025-06-03 17:15:32 +0200
committerGitHub <noreply@github.com>2025-06-03 17:15:32 +0200
commita9f8bbcd197c8d14832fc1ab1fbe4d4111a2014d (patch)
tree6d354fdd36cf534d73e0cb81a7cacd3fedc1ebb9 /zellij-server/src/plugins/wasm_bridge.rs
parentdocs(changelog): theme fixes (diff)
downloadsl0ppij-a9f8bbcd197c8d14832fc1ab1fbe4d4111a2014d.tar.gz
sl0ppij-a9f8bbcd197c8d14832fc1ab1fbe4d4111a2014d.tar.xz
sl0ppij-a9f8bbcd197c8d14832fc1ab1fbe4d4111a2014d.zip
feat(ux): improve multiple select (#4221)
* intercept/clear-intercept key APIs * allow opening a pinned unfocused floating pane * rework plugin * improve some apis * fix tests * tests for pane groups * more exact placement and tests * plugin command permission and cleanup * improve some multiselect ux * improve plugin ui * remove old status indicator * allow moving plugin out of the way * style(fmt): rustfmt * update plugins * remove old keybinding * cleanups * fix: only rename pane if needed * changelog and some cleanups * style(fmt): rustfmt
Diffstat (limited to 'zellij-server/src/plugins/wasm_bridge.rs')
-rw-r--r--zellij-server/src/plugins/wasm_bridge.rs11
1 files changed, 11 insertions, 0 deletions
diff --git a/zellij-server/src/plugins/wasm_bridge.rs b/zellij-server/src/plugins/wasm_bridge.rs
index d01a24e7..00b30aa1 100644
--- a/zellij-server/src/plugins/wasm_bridge.rs
+++ b/zellij-server/src/plugins/wasm_bridge.rs
@@ -324,6 +324,15 @@ impl WasmBridge {
for (_worker_name, worker_sender) in workers {
drop(worker_sender.send(MessageToWorker::Exit));
}
+ {
+ // if the plugin was intercepting key presses and for some reason did not clear
+ // this state, we make sure to do it ourselves so that the user will not get stuck
+ if running_plugin.lock().unwrap().intercepting_key_presses() {
+ let _ = self
+ .senders
+ .send_to_screen(ScreenInstruction::ClearKeyPressesIntercepts(client_id));
+ }
+ }
let subscriptions = subscriptions.lock().unwrap();
if subscriptions.contains(&EventType::BeforeClose) {
let mut running_plugin = running_plugin.lock().unwrap();
@@ -1436,6 +1445,8 @@ impl WasmBridge {
pane_id_to_replace,
cwd,
start_suppressed,
+ None,
+ None,
Some(client_id),
)));
vec![(plugin_id, Some(client_id))]