diff --git a/crates/assistant_tools/src/terminal_tool.rs b/crates/assistant_tools/src/terminal_tool.rs index 58833c5208..8add60f09a 100644 --- a/crates/assistant_tools/src/terminal_tool.rs +++ b/crates/assistant_tools/src/terminal_tool.rs @@ -225,7 +225,6 @@ impl Tool for TerminalTool { env, ..Default::default() }), - window, cx, ) })? diff --git a/crates/debugger_ui/src/session/running.rs b/crates/debugger_ui/src/session/running.rs index f2f9e17d89..a3e2805e2b 100644 --- a/crates/debugger_ui/src/session/running.rs +++ b/crates/debugger_ui/src/session/running.rs @@ -1014,10 +1014,9 @@ impl RunningState { ..task.resolved.clone() }; let terminal = project - .update_in(cx, |project, window, cx| { + .update(cx, |project, cx| { project.create_terminal( TerminalKind::Task(task_with_shell.clone()), - window.window_handle(), cx, ) })? @@ -1189,9 +1188,7 @@ impl RunningState { let workspace = self.workspace.clone(); let weak_project = project.downgrade(); - let terminal_task = project.update(cx, |project, cx| { - project.create_terminal(kind, window.window_handle(), cx) - }); + let terminal_task = project.update(cx, |project, cx| project.create_terminal(kind, cx)); let terminal_task = cx.spawn_in(window, async move |_, cx| { let terminal = terminal_task.await?; diff --git a/crates/project/src/terminals.rs b/crates/project/src/terminals.rs index 973d4e8811..41d8c4b2fd 100644 --- a/crates/project/src/terminals.rs +++ b/crates/project/src/terminals.rs @@ -1,7 +1,7 @@ use crate::{Project, ProjectPath}; use anyhow::{Context as _, Result}; use collections::HashMap; -use gpui::{AnyWindowHandle, App, AppContext as _, Context, Entity, Task, WeakEntity}; +use gpui::{App, AppContext as _, Context, Entity, Task, WeakEntity}; use itertools::Itertools; use language::LanguageName; use remote::ssh_session::SshArgs; @@ -98,7 +98,6 @@ impl Project { pub fn create_terminal( &mut self, kind: TerminalKind, - window: AnyWindowHandle, cx: &mut Context, ) -> Task>> { let path: Option> = match &kind { @@ -134,7 +133,7 @@ impl Project { None }; project.update(cx, |project, cx| { - project.create_terminal_with_venv(kind, python_venv_directory, window, cx) + project.create_terminal_with_venv(kind, python_venv_directory, cx) })? }) } @@ -209,7 +208,6 @@ impl Project { &mut self, kind: TerminalKind, python_venv_directory: Option, - window: AnyWindowHandle, cx: &mut Context, ) -> Result> { let this = &mut *self; @@ -396,7 +394,7 @@ impl Project { settings.alternate_scroll, settings.max_scroll_history_lines, is_ssh_terminal, - window, + cx.entity_id().as_u64(), completion_tx, cx, ) diff --git a/crates/terminal/src/terminal.rs b/crates/terminal/src/terminal.rs index 6e359414d7..d6a09a590f 100644 --- a/crates/terminal/src/terminal.rs +++ b/crates/terminal/src/terminal.rs @@ -63,9 +63,9 @@ use std::{ use thiserror::Error; use gpui::{ - AnyWindowHandle, App, AppContext as _, Bounds, ClipboardItem, Context, EventEmitter, Hsla, - Keystroke, Modifiers, MouseButton, MouseDownEvent, MouseMoveEvent, MouseUpEvent, Pixels, Point, - Rgba, ScrollWheelEvent, SharedString, Size, Task, TouchPhase, Window, actions, black, px, + App, AppContext as _, Bounds, ClipboardItem, Context, EventEmitter, Hsla, Keystroke, Modifiers, + MouseButton, MouseDownEvent, MouseMoveEvent, MouseUpEvent, Pixels, Point, Rgba, + ScrollWheelEvent, SharedString, Size, Task, TouchPhase, Window, actions, black, px, }; use crate::mappings::{colors::to_alac_rgb, keys::to_esc_str}; @@ -351,7 +351,7 @@ impl TerminalBuilder { alternate_scroll: AlternateScroll, max_scroll_history_lines: Option, is_ssh_terminal: bool, - window: AnyWindowHandle, + window_id: u64, completion_tx: Sender>, cx: &App, ) -> Result { @@ -463,11 +463,7 @@ impl TerminalBuilder { let term = Arc::new(FairMutex::new(term)); //Setup the pty... - let pty = match tty::new( - &pty_options, - TerminalBounds::default().into(), - window.window_id().as_u64(), - ) { + let pty = match tty::new(&pty_options, TerminalBounds::default().into(), window_id) { Ok(pty) => pty, Err(error) => { bail!(TerminalError { diff --git a/crates/terminal_view/src/persistence.rs b/crates/terminal_view/src/persistence.rs index 056365ab8c..b93b267f58 100644 --- a/crates/terminal_view/src/persistence.rs +++ b/crates/terminal_view/src/persistence.rs @@ -245,9 +245,8 @@ async fn deserialize_pane_group( let kind = TerminalKind::Shell( working_directory.as_deref().map(Path::to_path_buf), ); - let window = window.window_handle(); - let terminal = project - .update(cx, |project, cx| project.create_terminal(kind, window, cx)); + let terminal = + project.update(cx, |project, cx| project.create_terminal(kind, cx)); Some(Some(terminal)) } else { Some(None) diff --git a/crates/terminal_view/src/terminal_panel.rs b/crates/terminal_view/src/terminal_panel.rs index cb1e362884..c9528c39b9 100644 --- a/crates/terminal_view/src/terminal_panel.rs +++ b/crates/terminal_view/src/terminal_panel.rs @@ -432,10 +432,9 @@ impl TerminalPanel { }) .unwrap_or((None, None)); let kind = TerminalKind::Shell(working_directory); - let window_handle = window.window_handle(); let terminal = project .update(cx, |project, cx| { - project.create_terminal_with_venv(kind, python_venv_directory, window_handle, cx) + project.create_terminal_with_venv(kind, python_venv_directory, cx) }) .ok()?; @@ -666,13 +665,10 @@ impl TerminalPanel { "terminal not yet supported for remote projects" ))); } - let window_handle = window.window_handle(); let project = workspace.project().downgrade(); cx.spawn_in(window, async move |workspace, cx| { let terminal = project - .update(cx, |project, cx| { - project.create_terminal(kind, window_handle, cx) - })? + .update(cx, |project, cx| project.create_terminal(kind, cx))? .await?; workspace.update_in(cx, |workspace, window, cx| { @@ -709,11 +705,8 @@ impl TerminalPanel { terminal_panel.active_pane.clone() })?; let project = workspace.read_with(cx, |workspace, _| workspace.project().clone())?; - let window_handle = cx.window_handle(); let terminal = project - .update(cx, |project, cx| { - project.create_terminal(kind, window_handle, cx) - })? + .update(cx, |project, cx| project.create_terminal(kind, cx))? .await?; let result = workspace.update_in(cx, |workspace, window, cx| { let terminal_view = Box::new(cx.new(|cx| { @@ -814,7 +807,6 @@ impl TerminalPanel { ) -> Task>> { let reveal = spawn_task.reveal; let reveal_target = spawn_task.reveal_target; - let window_handle = window.window_handle(); let task_workspace = self.workspace.clone(); cx.spawn_in(window, async move |terminal_panel, cx| { let project = terminal_panel.update(cx, |this, cx| { @@ -823,7 +815,7 @@ impl TerminalPanel { })??; let new_terminal = project .update(cx, |project, cx| { - project.create_terminal(TerminalKind::Task(spawn_task), window_handle, cx) + project.create_terminal(TerminalKind::Task(spawn_task), cx) })? .await?; terminal_to_replace.update_in(cx, |terminal_to_replace, window, cx| { diff --git a/crates/terminal_view/src/terminal_view.rs b/crates/terminal_view/src/terminal_view.rs index 2e6be5aaf4..361cdd0b1c 100644 --- a/crates/terminal_view/src/terminal_view.rs +++ b/crates/terminal_view/src/terminal_view.rs @@ -1654,7 +1654,6 @@ impl Item for TerminalView { window: &mut Window, cx: &mut Context, ) -> Option> { - let window_handle = window.window_handle(); let terminal = self .project .update(cx, |project, cx| { @@ -1666,7 +1665,6 @@ impl Item for TerminalView { project.create_terminal_with_venv( TerminalKind::Shell(working_directory), python_venv_directory, - window_handle, cx, ) }) @@ -1802,7 +1800,6 @@ impl SerializableItem for TerminalView { window: &mut Window, cx: &mut App, ) -> Task>> { - let window_handle = window.window_handle(); window.spawn(cx, async move |cx| { let cwd = cx .update(|_window, cx| { @@ -1826,7 +1823,7 @@ impl SerializableItem for TerminalView { let terminal = project .update(cx, |project, cx| { - project.create_terminal(TerminalKind::Shell(cwd), window_handle, cx) + project.create_terminal(TerminalKind::Shell(cwd), cx) })? .await?; cx.update(|window, cx| {