Use Project
's EntityId as the "window id" for Alacritty PTYs (#35876)
It's unfortunate to need to have access to a GPUI window in order to create a terminal, because it forces to take a `Window` parameter in entities that otherwise would have been pure models. This pull request changes it so that we pass the `Project`'s entity id, which is equally stable as the window id. Release Notes: - N/A Co-authored-by: Ben Brandt <benjamin.j.brandt@gmail.com>
This commit is contained in:
parent
95547f099c
commit
51298b6912
7 changed files with 17 additions and 39 deletions
|
@ -1654,7 +1654,6 @@ impl Item for TerminalView {
|
|||
window: &mut Window,
|
||||
cx: &mut Context<Self>,
|
||||
) -> Option<Entity<Self>> {
|
||||
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<anyhow::Result<Entity<Self>>> {
|
||||
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| {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue