Pass WindowContext to ViewHandle::is_focused

This commit is contained in:
Antonio Scandurra 2023-04-14 12:12:08 +02:00
parent 74ca223114
commit 98dce89379
3 changed files with 8 additions and 9 deletions

View file

@ -161,7 +161,7 @@ impl View for CopilotButton {
));
let window_id = cx.window_id();
let task = task.to_owned();
cx.spawn(|this, mut cx| async move {
cx.spawn_weak(|_this, mut cx| async move {
task.await;
cx.update(|cx| {
if let Some(copilot) = Copilot::global(cx) {

View file

@ -3928,12 +3928,8 @@ impl<T: View> ViewHandle<T> {
});
}
#[cfg(any(test, feature = "test-support"))]
pub fn is_focused(&self, cx: &AppContext) -> bool {
cx.read_window(self.window_id, |cx| {
cx.focused_view_id() == Some(self.view_id)
})
.unwrap_or(false)
pub fn is_focused(&self, cx: &WindowContext) -> bool {
cx.focused_view_id() == Some(self.view_id)
}
}

View file

@ -1549,7 +1549,7 @@ mod tests {
.await;
let project = Project::test(fs.clone(), ["/root1".as_ref(), "/root2".as_ref()], cx).await;
let (_, workspace) = cx.add_window(|cx| Workspace::test_new(project.clone(), cx));
let (window_id, workspace) = cx.add_window(|cx| Workspace::test_new(project.clone(), cx));
let panel = workspace.update(cx, |_, cx| ProjectPanel::new(project, cx));
select_path(&panel, "root1", cx);
@ -1571,7 +1571,10 @@ mod tests {
// Add a file with the root folder selected. The filename editor is placed
// before the first file in the root folder.
panel.update(cx, |panel, cx| panel.new_file(&NewFile, cx));
assert!(panel.read_with(cx, |panel, cx| panel.filename_editor.is_focused(cx)));
cx.read_window(window_id, |cx| {
let panel = panel.read(cx);
assert!(panel.filename_editor.is_focused(cx));
});
assert_eq!(
visible_entries_as_strings(&panel, 0..10, cx),
&[